翼度科技»论坛 编程开发 mysql 查看内容

Mysql中强大的group by语句解析

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
group by语句介绍

GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
工具:
sqlyog

实例


建表 user表
  1. CREATE TABLE `user` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  4.   `number` int(11) DEFAULT NULL,
  5.   `sex` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
  6.   `salary` int(11) DEFAULT NULL,
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
复制代码


信息就不补充了~

(1)基本用法

根据性别
  1. sex
复制代码
来进行分组,查询
  1. user
复制代码
表中的姓名,年龄,性别。虽然是分组了,但只显示一个用户,其他的不显示。
  1. SELECT NAME,age,sex FROM USER GROUP BY sex;
复制代码


(2)
  1. GROUP BY
复制代码
语句中的
  1. GROUP_CONCAT
复制代码
函数()


根据
  1. sex
复制代码
字段,来查询
  1. name
复制代码
字段和
  1. age
复制代码
字段的详细信息。
  1. SELECT sex ,GROUP_CONCAT(NAME), GROUP_CONCAT(age)FROM USER GROUP BY sex;
复制代码


(3)利用
  1. count
复制代码
函数来查询性别的总人数


根据
  1. sex
复制代码
字段来查询
  1. name
复制代码
字段的详细信息和
  1. sex
复制代码
字段性别的人数。
  1. SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER GROUP BY sex;
复制代码


(4)
  1. where
复制代码
语句


根据
  1. sex
复制代码
字段进行分组,用
  1. where
复制代码
语句来查询年龄大于25的人数
  1. SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER  WHERE age >25 GROUP BY sex;
复制代码


(5)
  1. SUM
复制代码
  1. MAX
复制代码
  1. MIN
复制代码
  1. AVG
复制代码
函数


根据
  1. sex
复制代码
  1. SUM
复制代码
  1. MAX
复制代码
  1. MIN
复制代码
  1. AVG
复制代码
函数来查询用户的总资金,最大资金,最小资金,平局资金
  1. SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER  GROUP BY sex;
复制代码


(6)
  1. HAVING
复制代码
子句


在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。 根据
  1. sex
复制代码
语句进行分组,来查询各组中资金大于1500的组
  1. SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex) FROM USER   GROUP BY sex HAVING SUM(salary)>1500;
复制代码


(7)
  1. WITH ROLLUP
复制代码
子句:

  1. WITH ROLLUP
复制代码
可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
  1. SELECT sex ,GROUP_CONCAT(NAME),COUNT(sex),SUM(salary),MAX(salary),MIN(salary),AVG(salary) FROM USER  GROUP BY sex WITH ROLLUP;
复制代码


结尾

从中发现
  1. GROUP BY
复制代码
函数还是十分强大的,使得分组查找效率更高!
到此这篇关于Mysql中强大的group by语句解析的文章就介绍到这了,更多相关Mysql的group by语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/database/29201107q.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具