这是我在这里的第一个问题,所以我希望我能解释得足够好,我想按表中出现的数量排序我的数据。我的桌子是这样的:
id Daynr
1 2
1 4
2 4
2 5
2 6
3 1
4 2
4 5我想让它像这样分类:
id Daynr
3 1
1 2
1 4
4 2
4 5
2 4
2 5
2 6牌手#3在表中有一天,第1名有2天,我的表名为"dayid“,id和Daynr都是外键,这使它成为主键。
我希望这能充分解释我的问题,请你提供更多的信息,这是我第一次来这里。
提前感谢
发布于 2014-06-14 13:05:10
您可以通过计算每个id发生的次数来做到这一点。大多数数据库支持窗口函数,因此您可以这样做:
select id, daynr
from (select t.*, count(*) over (partition by id) as cnt
from table t
) t
order by cnt, id;您也可以将其表示为join。
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的所有行将一起出现。
https://stackoverflow.com/questions/24220217
复制相似问题