这是我的第一个问题,所以我希望我能够解释得很清楚, 我想按表中出现的次数来订购我的数据。 我的桌子是这样的:
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都是外键,一起使它成为主键
我希望这足以解释我的问题,请向我索取更多信息,这是我第一次来这里。
提前致谢
答案 0 :(得分:0)
您可以通过计算每个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的所有行将一起显示。