跟小博老师一起学习数据库 ——GROUP BY
跟小博老师一起学习数据库 ——GROUP BY
博为峰教研组 发表于6个月前
跟小博老师一起学习数据库 ——GROUP BY
  • 发表于 6个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

当要根据某些条件对数据分组时,就要使用到GROUP BY语句。GROUP BY语句可结合聚合函数使用,分组条件可是一个也可以是多个。

语法

注意:

使用GROUP BY语句后,查询的只能是出现在GROUP BY子句中的列使用了聚合函数列。

我们还是使用EMP表来做些练习

 

1. 查询有个工种

 

2. 查询每个工种每月所需支付的基本工资

 

3. 查询每个部门平均工资

 

4. 查询每个部门中各个工种的最低工资

 

5. 查询每个工种的最高基本工资,并按基本工资从大到小排序

 

6. 查询除了20部门以外其它部分的平均工资

 

HAVING子

如要对分组后的结果过滤,就不能使用WHERE子句了,应该要使用HAVING增加过滤条件。

例有这样一个需求“查询平均工资大于3000的工种信息”,很多学员可能写成这样

 

以上的SQL语句是错误的,原因是聚合函数(AVG()函数)不能出现WHERE子句中。

我们应调整成以下语句

 

WHERE与HAVING的区别在于WHERE是先对数据过滤HAVING是以分组后的数据再过滤,在某可互

我们一起看个题:

查询除了CLERK,MANAGER工种以外的工种最高基本工资。

WHERE写

 

HAVING写

 

  以上两种写法都能达到预期目标,但查询过程完全不相同,小伙伴自己实际操作操作吧。

标签: SQL MySql GROUP BY 数据库
共有 人打赏支持
粉丝 40
博文 1224
码字总数 479077
×
博为峰教研组
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: