要计算MySQL列中出现次数最多的前10个值,语法如下-
SELECT yourColumnName, count(*) FROM yourTableName GROUP BY yourColumnName ORDER BY count(*) DESC LIMIT 10;
为了理解上述语法,让我们创建一个表。创建表的查询如下-
mysql> create table countTop10Demo -> ( -> Value int -> );
使用insert命令在表中插入一些记录。查询如下-
mysql> insert into countTop10Demo values(10); mysql> insert into countTop10Demo values(1100); mysql> insert into countTop10Demo values(200); mysql> insert into countTop10Demo values(2100); mysql> insert into countTop10Demo values(1100); mysql> insert into countTop10Demo values(450); mysql> insert into countTop10Demo values(600); mysql> insert into countTop10Demo values(2100); mysql> insert into countTop10Demo values(150); mysql> insert into countTop10Demo values(16454); mysql> insert into countTop10Demo values(450); mysql> insert into countTop10Demo values(2350); mysql> insert into countTop10Demo values(1780); mysql> insert into countTop10Demo values(1345); mysql> insert into countTop10Demo values(34); mysql> insert into countTop10Demo values(2100); mysql> insert into countTop10Demo values(19034); mysql> insert into countTop10Demo values(1844); mysql> insert into countTop10Demo values(34); mysql> insert into countTop10Demo values(16454);
现在,您可以使用select语句显示表中的所有记录。查询如下-
mysql> select *from countTop10Demo;
这是输出-
+-------+ | Value | +-------+ | 10 | | 1100 | | 200 | | 2100 | | 1100 | | 450 | | 600 | | 2100 | | 150 | | 16454 | | 450 | | 2350 | | 1780 | | 1345 | | 34 | | 2100 | | 19034 | | 1844 | | 34 | | 16454 | +-------+ 20 rows in set (0.00 sec)
以下是在MySQL的列中选择前10个最常出现的值的查询-
mysql> SELECT Value, count(*) -> FROM countTop10Demo -> GROUP BY Value -> ORDER BY count(*) DESC -> LIMIT 10;
这是输出-
+-------+----------+ | Value | count(*) | +-------+----------+ | 2100 | 3 | | 1100 | 2 | | 34 | 2 | | 450 | 2 | | 16454 | 2 | | 1780 | 1 | | 200 | 1 | | 1345 | 1 | | 19034 | 1 | | 600 | 1 | +-------+----------+ 10 rows in set (0.00 sec)