|
group by语句介绍
GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
工具:
sqlyog
实例
建表 user表
- CREATE TABLE `user` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
- `number` int(11) DEFAULT NULL,
- `sex` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
- `salary` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
复制代码
信息就不补充了~
(1)基本用法
根据性别来进行分组,查询表中的姓名,年龄,性别。虽然是分组了,但只显示一个用户,其他的不显示。- SELECT NAME,age,sex FROM USER GROUP BY sex;
复制代码
(2)语句中的函数()
根据字段,来查询字段和字段的详细信息。- SELECT sex ,GROUP_CONCAT(NAME), GROUP_CONCAT(age)FROM USER GROUP BY sex;
复制代码
(3)利用函数来查询性别的总人数
根据字段来查询字段的详细信息和字段性别的人数。- SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER GROUP BY sex;
复制代码
(4)语句
根据字段进行分组,用语句来查询年龄大于25的人数- SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER WHERE age >25 GROUP BY sex;
复制代码
(5)函数
根据用函数来查询用户的总资金,最大资金,最小资金,平局资金- SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER GROUP BY sex;
复制代码
(6)子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。 根据语句进行分组,来查询各组中资金大于1500的组- SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER GROUP BY sex HAVING SUM(salary)>1500;
复制代码
(7)子句:
可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。- SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER GROUP BY sex WITH ROLLUP;
复制代码
结尾
从中发现函数还是十分强大的,使得分组查找效率更高!
到此这篇关于Mysql中强大的group by语句解析的文章就介绍到这了,更多相关Mysql的group by语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/database/29201107q.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|