MySQL中的WHERE和HAVING

使用GROUP BY语句时,有时会同时使用WHEREHAVING,常常会因为搞不清楚要用哪个而写错,这里记录一下

TL;NRs

  • WEHRE语句必须在GROUP BY之前,用于对表中数据进行筛选
  • HAVING语句必须在GROUP BY之后,用于对数据分组统计后的结果进行筛选

例子

image

对如上图所示的表t执行以下语句:

# 语句1
SELECT age, COUNT(*) FROM t
WHERE id > 4
GROUP BY age
HAVING age > 13
;

结果为
image

而执行语句2:

# 语句2
SELECT age, COUNT(*) FROM t
GROUP BY age
HAVING age > 13
;

结果为
image

执行语句3:

# 语句3
SELECT age, COUNT(*) FROM t
GROUP BY age
HAVING age > 13
WHERE id > 4
;

则报错

posted @   计数寄存器  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示