我想按从大多数到最小的顺序检索表值。 例如,如果我们有一个像下面这样的列表,
selected_val
2
3
3
2
1
3
1
1
1
4
我需要一个SQL,它将以1,3,2,4的顺序返回值,因为有四个1,三个3,两个2,以及一个表中有4个。我只需要不同的值,这意味着我不想要1,1,1,1,3,3,3,2,2,4。这可能吗?
答案 0 :(得分:3)
您可以使用分组来实现此目的:
SELECT selected_val
FROM mytable
GROUP BY selected_val
ORDER BY COUNT(*) DESC
这里的诀窍是ORDER BY
每个组的行数:降序排序产生selected_val
首先具有最大行数,然后是第二个值,等等。
答案 1 :(得分:2)
您可以按count(*)
:
SELECT selected_val
FROM mytable
GROUP BY selected_val
ORDER BY COUNT(*) DESC