admin管理员组文章数量:1794759
MySQL【知识改变命运】07
1:Group by 分组查询
可以根据某列,进行分组查询,比如学校里面的人,就可以以职位可以分为学生,老师两组 ,然后用聚合函数对分组进行统计
1.1:语法:
代码语言:javascript代码运行次数:0运行复制SELECT {col_name | expr} ,... ,aggregate_function (aggregate_expr)
FROM table_references
GROUP BY {col_name | expr}, ...
[HAVING where_condition]
语法解释: •col_name | expr:要查询的列或表达式,可以有多个,必须在 GROUP BY ⼦句中作为分组依据 • aggregate_function:聚合函数,⽐如COUNT(), SUM(), AVG(), MAX(), MIN() • aggregate_expr:聚合函数传⼊的列或表达式,如果列或表达式不在 GOURP BY ⼦句中,必须包含中聚合函数中
1.2:练习
创建一个表
统计每个⻆⾊的⼈数
以role分为四组,对每组进行统计运算
注意:
分组后:查询列表中的列必须在group by子句中也有,如果否则的话会提示错误,因为显示分组中的那个行的数据都不合适。
统计每个⻆⾊的平均⼯资,最⾼⼯资,最低⼯资
2:having⼦句
找到平均工资大于1万的角色 这个我们如何编写?
这道题思路我们应该先以角色分组,然后计算平均成绩,然后把工资大于1w的角色筛选出来。 这时候就会出现问题,where筛选在分组之前已经执行过了,这样就无法实现上述的效果,那如何解决呢? 使⽤GROUP BY 对结果进⾏分组处理之后,对分组的结果进⾏过滤时,不能使⽤ WHERE ⼦句,⽽要使⽤ HAVING ⼦句
Having 与Where 的区别 • Having ⽤于对分组结果的条件过滤 • Where ⽤于对表中真实数据的条件过滤
3回顾:
在这里我们已经学完了所有的检索内容;我们在回顾一下:
代码语言:javascript代码运行次数:0运行复制SELECT
[DISTINCT]
select_expr [, select_expr] ...
[FROM table_references]
[WHERE where_condition]
[GROUP BY {col_name | expr}, ...]
[HAVING where_condition]
[ORDER BY {col_name | expr } [ASC | DESC], ... ]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
3:内置函数
MySQL内部实现好一些函数,可以拿来直接用,但是我们要注意的是,一般对于数据处理的问题,在应用程序中完成,不要放在数据库里面处理。
3.1 :⽇期函数
字符串处理函数函数 数学函数 其他常⽤函数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-16,如有侵权请联系 cloudcommunity@tencent 删除语法mysql函数数据统计本文标签: MySQL知识改变命运07
版权声明:本文标题:MySQL【知识改变命运】07 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754744733a1705865.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论