首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL【知识改变命运】07

MySQL【知识改变命运】07

作者头像
用户11319080
发布2024-10-17 19:29:43
发布2024-10-17 19:29:43
2310
举报
文章被收录于专栏:学习学习

1:Group by 分组查询

可以根据某列,进行分组查询,比如学校里面的人,就可以以职位可以分为学生,老师两组 ,然后用聚合函数对分组进行统计

1.1:语法:

代码语言:javascript
复制
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
复制
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.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:Group by 分组查询
    • 1.1:语法:
    • 1.2:练习
  • 2:having⼦句
  • 3回顾:
  • 3:内置函数
    • 3.1 :⽇期函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档