Mysql 对多次出现的次数进行排序

Mysql 对多次出现的次数进行排序,mysql,sql,group-by,sql-order-by,Mysql,Sql,Group By,Sql Order By,假设我有以下数据: 2 2 2 3 3 3 4 4 5 5 我想输出一个表,计算重复的频率,并按重复的数量排序 在本例中,两次数据有3个副本,两次数据有2个副本,因此输出为: 2 3 2 2 在SQL中有没有一种简单的方法可以做到这一点 这是一个直方图查询。您只需要两个聚合: select cnt, count(*) from (select col, count(*) as cnt from t group by col ) t group b

假设我有以下数据:

2
2
2
3
3
3
4
4
5
5
我想输出一个表,计算重复的频率,并按重复的数量排序

在本例中,两次数据有3个副本,两次数据有2个副本,因此输出为:

2    3
2    2

在SQL中有没有一种简单的方法可以做到这一点

这是一个直方图查询。您只需要两个聚合:

select cnt, count(*)
from (select col, count(*) as cnt
      from t
      group by col
     ) t
group by cnt;

这是一个直方图查询。您只需要两个聚合:

select cnt, count(*)
from (select col, count(*) as cnt
      from t
      group by col
     ) t
group by cnt;

使用内部查询获取每个数据点的重复,然后使用外部查询按这些重复进行分组,以获取这些重复发生的次数

SELECT i.repetition, COUNT(*) as times
FROM (SELECT column_name, COUNT(*) as repetition
        FROM TABLE_NAME
      GROUP BY column_name) as i
GROUP BY i.repetition
ORDER BY COUNT(*) DESC

使用内部查询获取每个数据点的重复,然后使用外部查询按这些重复进行分组,以获取这些重复发生的次数

SELECT i.repetition, COUNT(*) as times
FROM (SELECT column_name, COUNT(*) as repetition
        FROM TABLE_NAME
      GROUP BY column_name) as i
GROUP BY i.repetition
ORDER BY COUNT(*) DESC
添加
orderbycount(*)DESC
即可完成所有设置。添加
orderbycount(*)DESC
即可完成所有设置。