Mysql-分组和聚合函数
1、MySQL分组
1.1 group by 语法可以根据给定字段对查询结果进行分组统计,相同属性的数据为一个组。通常,在每组中通过聚合函数来可以计算组中最大,最小等。
如果group by带有having,则只有满足having后面的条件的组才能输出。
注意: having 必须在group by之后。
2、与分组相关的聚合函数
count 返回某个字段的值的行数
max 求最大某字段最大的值
min 求某字段最小值
avg 返回某字段平均值
sum 求某字段总和
group_concat 将分组的结果拼接成字符串
3、 group by 语法
select 字段 from 表名 where where条件 group by 分组条件 having having条件 order by 字段 asc/desc limit offset, row
注意:
1. GROUP BY 必须出现在WHERE 之后,ORDER BY 之前。
2. 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY中给出。
举例:
错误,由于name字段没有写到group by之后
select count(id),name,sex from user group by sex;
正确写法
select count(id),name,sex from user group by sex,name;
备注:
group by 用于根据字段进行分组
having 指定分组的搜索条件,对分组的结果做进一步的处理
limit 显示查询出来的数据条数