首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -按事件数量排序

SQL -按事件数量排序
EN

Stack Overflow用户
提问于 2014-06-14 13:03:19
回答 1查看 778关注 0票数 0

这是我在这里的第一个问题,所以我希望我能解释得足够好,我想按表中出现的数量排序我的数据。我的桌子是这样的:

代码语言:javascript
复制
id      Daynr
1       2
1       4
2       4
2       5
2       6
3       1
4       2
4       5

我想让它像这样分类:

代码语言:javascript
复制
id      Daynr
3       1
1       2
1       4
4       2
4       5
2       4
2       5
2       6

牌手#3在表中有一天,第1名有2天,我的表名为"dayid“,id和Daynr都是外键,这使它成为主键。

我希望这能充分解释我的问题,请你提供更多的信息,这是我第一次来这里。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-14 13:05:10

您可以通过计算每个id发生的次数来做到这一点。大多数数据库支持窗口函数,因此您可以这样做:

代码语言:javascript
复制
select id, daynr
from (select t.*, count(*) over (partition by id) as cnt
      from table t
     ) t
order by cnt, id;

您也可以将其表示为join

代码语言:javascript
复制
select t.id, t.daynr
from table as t inner join
     (select id, count(*) as cnt
      from table
      group by id
     ) as tg
     on t.id = tg.id
order by tg.cnt, id;

请注意,这两种方法都包括id中的order by。这样,如果两个id具有相同的计数,则id的所有行将一起出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24220217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档