MySQL进阶_查询(聚合查询)
【摘要】 表的设计三大范式一对一一个人只有一个身份证号!!!一对多一个班级里有好多学生多对多一个课程有多个学生上,一个学生要上多个课程 新增我们可以在一张表中插入其他表的查询结果!!!将student_2表中的数据插入到student_1中必须是两个表对应的字段类型匹配才可以!!!我们已经成功将student_2表中的名字信息插入到了student_1表! 查询 聚合查询聚合函数常见的的统计计数,计...
表的设计
三大范式
- 一对一
一个人只有一个身份证号!!! - 一对多
一个班级里有好多学生 - 多对多
一个课程有多个学生上,一个学生要上多个课程
新增
我们可以在一张表中插入其他表的查询结果!!!
将student_2
表中的数据插入到student_1
中
必须是两个表对应的字段类型匹配才可以!!!
我们已经成功将student_2
表中的名字信息插入到了student_1
表!
查询
聚合查询
- 聚合函数
常见的的统计计数,计数平均值等,可以通过聚合函数来实现,常见的聚合函数如下:
函数 | 说明 |
---|---|
count(列名) | 返回查询到的数据的数量 |
sum(表达式/列名) | 返回查询到的数据总和,不是数字没有意义 |
max(表达式/列名) | 返回查询到的数据最大值,不是数字没有意义 |
min(表达式/列名) | 返回查询到的数据最小值,不是数字没有意义 |
avg(表达式/列名) | 返回查询到的数据平均值,不是数字没有意义 |
count
查询多少学生!
sum
查询总分
avg
查询每科平均成绩
max
查询最大值
min
查询最小值
group by
子句
select
中使用group by
子句可以对指定列进行分组查询。需要满足:使用group by
进行分组查询时,select
指定的字段必须是“分组依据字段”,其他字段若想出现在select
中则必须包含在聚合函数中。
也就是说,group by
子句可以通过列进行分组!
例如下方的emp
中根据role
这一列我们可以将该表分成多组!
根据role
分组
查询不同role
组中的人数 平均薪水,最高薪水,最低薪水!
having
group by
子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用where
语句,而需要用having
显示平均工资低于1500
的角色和它的平均工资!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)