网站平台推广方案,xp系统做局域网内网站,晋城龙采网站建设,无锡网站优化公司MySQL 1#xff1a;Group by 分组查询1.1#xff1a;语法#xff1a;1.2#xff1a;练习 2#xff1a;having⼦句3回顾#xff1a;3#xff1a;内置函数3.1 :⽇期函数 1#xff1a;Group by 分组查询
可以根据某列#xff0c;进行分组查询#xff0c;比如学校里面的… MySQL 1Group by 分组查询1.1语法1.2练习 2having⼦句3回顾3内置函数3.1 :⽇期函数 1Group by 分组查询
可以根据某列进行分组查询比如学校里面的人就可以以职位可以分为学生老师两组 然后用聚合函数对分组进行统计
1.1语法
SELECT {col_name | expr} ,... ,aggregate_function (aggregate_expr)FROM table_referencesGROUP 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子句中也有如果否则的话会提示错误因为显示分组中的那个行的数据都不合适。 统计每个⻆⾊的平均⼯资最⾼⼯资最低⼯资
2having⼦句
找到平均工资大于1万的角色 这个我们如何编写 这道题思路我们应该先以角色分组然后计算平均成绩然后把工资大于1w的角色筛选出来。 这时候就会出现问题where筛选在分组之前已经执行过了这样就无法实现上述的效果那如何解决呢 使⽤GROUP BY 对结果进⾏分组处理之后对分组的结果进⾏过滤时不能使⽤ WHERE ⼦句⽽要使⽤ HAVING ⼦句 Having 与Where 的区别 • Having ⽤于对分组结果的条件过滤 • Where ⽤于对表中真实数据的条件过滤
3回顾
在这里我们已经学完了所有的检索内容我们在回顾一下
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 :⽇期函数 字符串处理函数函数 数学函数 其他常⽤函数