码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 求低频数、中频数、高频数

时间:2020-11-30 15:34:56      阅读:8      评论:0      收藏:0      [点我收藏+]

标签:使用   order   结果   大于   假设   order by   mysql   次数   desc   

数据表

练习使用 group by having... 语句

假设有 student 表,如下:

+----+------+-----+
| id | name | age |
+----+------+-----+
| 1 | 刘备 | 23 |
| 2 | 关羽 | 22 |
| 3 | 张飞 | 21 |
| 4 | 刘表 | 43 |
| 5 | 刘璋 | 43 |
| 6 | 刘蝉 | 3 |
| 7 | 曹操 | 33 |
| 8 | 曹植 | 13 |
| 9 | 曹丕 | 15 |
| 10 | 关平 | 17 |
+----+------+-----+

问题 1:求出现次数小于 3 次的姓(低频姓)

解:select left(name, 1) from student group by left(name, 1) having count(*)<3;

得到结果集:

+---------------+
| left(name, 1) |
+---------------+
| 关 |
| 张 |
+---------------+

问题 2:求出现次数大于 3 次的姓(高频姓)

解:select left(name, 1) from student group by left(name, 1) having count(*)>3;

得到结果集:

+---------------+
| left(name, 1) |
+---------------+
| 刘 |
+---------------+

问题 3:求出现次数大于 1 次 小于 4 次的姓(中频姓)

解:select left(name, 1) from student group by left(name, 1) having count(*)>1 and count(*)<4;

得到结果集:

+---------------+
| left(name, 1) |
+---------------+
| 关 |
| 曹 |
+---------------+

 

问题 4:求各个姓氏出现的次数(频数统计)

解:select left(name, 1), count(*) from student group by left(name, 1);

得:

+---------------+----------+
| left(name, 1) | count(*) |
+---------------+----------+
| 关 | 2 |
| 刘 | 4 |
| 张 | 1 |
| 曹 | 3 |
+---------------+----------+

问题 5:求各个姓氏出现的次数,并按出现次数由高到低排序(频数统计)

解:select left(name, 1), count(*) from student group by left(name, 1) order by count(*) desc;

得:

+---------------+----------+
| left(name, 1) | count(*) |
+---------------+----------+
| 刘 | 4 |
| 曹 | 3 |
| 关 | 2 |
| 张 | 1 |
+---------------+----------+

 

MySQL 求低频数、中频数、高频数

标签:使用   order   结果   大于   假设   order by   mysql   次数   desc   

原文地址:https://www.cnblogs.com/wumingoo1/p/14033976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!