为了账号安全,请及时绑定邮箱和手机立即绑定

select 字句中有个多字段,为什么group by后面可以只跟一个分组条件?

select 字句中有多个字段,为什么group by后面可以只跟一个分组条件?

sql基础教程书上写着:使用group by子句时,select子句中不能出现聚合键之外的列名

正在回答

1 回答

mysql> SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING orders>=2;


GROUP BY的规定:

1、GROUP BY 后面可以包含多个列,这就是嵌套。

2、如果GROUP BY进行了嵌套,数据将在最后一个分组上进行汇总。

3、GROUP BY子句中列出来的每个列必须是检索列或有效的表达式(但不能是聚集函数),如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。

4、除了聚集语句外,SELECT语句中的每一个列都必须在GROUP BY子句中给出。

5、如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多个NULL,它们将作为一个分组返回。

6、GROUP BY子句必须在WHERE 子句之后,ORDER BY 子句之前。



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

select 字句中有个多字段,为什么group by后面可以只跟一个分组条件?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信