1. where 在分组之前进行过滤,如果不满足条件,则不参与分组;having在分组之后进行过滤,如果不满足结果,则不会被查询出来;
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断;

 

group by,having,where区别以及顺序

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

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

count()为聚集函数,在GROUP BY后面有v_id,所以SELECT需要后面有v_id该列;

SELECT v_id,COUNT(*) FROM t_product GROUP BY v_id;

相关文章:

  • 2021-10-01
  • 2021-10-07
  • 2021-05-21
  • 2021-07-02
猜你喜欢
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案