在一个SQL查询中区分,计数和排序

时间:2012-04-12 11:31:18

标签: sql postgresql sql-order-by aggregate-functions

这是我关于stackoverflow的第一个问题,欢迎大家。

我有一张桌子:

id   fk_user
1      1
2      1
3      3
4      2
5      3

我想准备一个SQL查询,返回fk_user,按该表中出现的次数排序。例如:

fk_user 1出现3次,所以它将是第一次 fk_user 2发生一次,因此它将是最后一次 fk_user 3出现两次,所以它将是第二次。

该查询的结果应为:

fk_user
1
3
2

2 个答案:

答案 0 :(得分:9)

select fk_user from 
xxx
group by fk_user
order by count(*) desc

答案 1 :(得分:3)

试试这个

SELECT fk_user FROM your_table
GROUP BY fk_user 
ORDER BY COUNT(*) DESC