mysql分组查询和聚合函数,数据截取和排序
如图所示的上表,group by分组必须在select中存在,就在这样
1 | 正确 |
上面的错误使用会引发sql_mode=only_full_group_by,这是因为sql语法越来越严谨了,具体关闭方法百度,不推荐关闭
在查询语句中使用了groups和group均报错,所以就换成 zuming
SELECT zuming AS new_id FROM demo GROUP BY zuming;查询如图
如果我们要查询这个组的某个字段有那些值,我们可以用GROUP_CONCAT
1 | SELECT zuming,GROUP_CONCAT(name),GROUP_CONCAT(age) FROM demo GROUP BY zuming |
如果GROUP BY指定了两个字段,就会这样,ORDER BY指定排序字段, DESC 可以让排序相反
1 | SELECT name,age,zuming,GROUP_CONCAT(salary),COUNT(age) FROM demo GROUP BY zuming,name,age ORDER BY zuming DESC |
GROUP BY 可以配合聚合函数来统计分组组的salary的总和,AS可以将字段改名
1 | SELECT zuming,GROUP_CONCAT(name),GROUP_CONCAT(salary),SUM(salary) as salary_count FROM demo GROUP BY zuming |
Limit number,number 第一个数字指定从第几个开始截取,第二个指定截取多少个
1 | SELECT * FROM demo LIMIT 0,5 |