当两个表联结后,group by 后面的列如果在select后面出现了,可以直接进行groupby,否则最好加上表名,如果不加表名,且该列是重复列的话,会报错,

where和group by可以连用,但where子句中是不能用聚集函数作为条件表达式的,想要用聚合函数做筛选可以再group by后面跟having做筛选

参考:https://blog.csdn.net/weixin_37609825/article/details/79967246

由于select子句的运行顺序在group by, having等字句之后,group by, having子句中不能使用select中确定的别名;where子句中不能使用汇总函数;这是因为group by在where之后执行,汇总函数必须在group by之后执行,如count函数就是groupby某列时,再count另一列才有意义,否则在where的时候count某一列是没有意义的,

-- 运行顺序
select 性别,count(*) as '学生人数' -- 4
from student -- 1
where 出生日期 > '1990-01-01' -- 2
group by 性别; -- 3

 

group by与where having的使用

 

相关文章:

  • 2021-11-08
  • 2021-05-20
  • 2021-12-28
  • 2022-12-23
  • 2021-09-27
  • 2021-09-13
  • 2021-03-30
  • 2021-07-24
猜你喜欢
  • 2022-12-23
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
  • 2022-02-14
  • 2021-10-06
  • 2022-12-23
相关资源
相似解决方案