前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >group by 与 where, having以及顺序

group by 与 where, having以及顺序

作者头像
全栈程序员站长
发布2022-09-01 14:38:14
2.1K0
发布2022-09-01 14:38:14
举报

大家好,又见面了,我是你们的朋友全栈君。

1. GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前. HAVING语句必须在ORDER BY子句之后。(where先执行,再groupby分组;groupby先分组,having在执行。)

group by 与 where, having以及顺序
group by 与 where, having以及顺序

2. 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子

句中给出。count()为聚集函数,vend_id在后面groupby中有,所以select后面有。

group by 与 where, having以及顺序
group by 与 where, having以及顺序

select vend_id, count(*) , sales from products group by vend_id;

这个语句,其中sales字段,在group by中没有,所以查询的结果,sales的值是错误的!!!(切记)

如果想用分组后的,sales的字段,可以采用left join的方式,相当于两个表匹配的方式,查询:(原始表B)

select vend_id, sales from B left join (select vend_id, count(*) nums, min(sales) sales from products group by vend_id) as A on B.vend_id = A.vend_id WHERE…….

3. 语句顺序

group by 与 where, having以及顺序
group by 与 where, having以及顺序
group by 与 where, having以及顺序
group by 与 where, having以及顺序

摘自:MYSQL必知必会

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141524.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档