在SQL中排序从大多数到最小的值

时间:2016-01-10 08:15:04

标签: mysql sql select

我想按从大多数到最小的顺序检索表值。 例如,如果我们有一个像下面这样的列表,

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。这可能吗?

2 个答案:

答案 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