Loading

数据库中where与having的区别

WHERE和HAVING的区别?

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

 

GROUP BY,HAVING,WHERE区别以及顺序

  • GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前,HAVING语句必须在ORDER BY子句之后;
    • WHERE先执行,再GROUP BY分组;
    • GROUP BY先分组,HAVING再执行;
  • 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出;如下:

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

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

 

posted @ 2019-02-20 15:41  街头卖艺的肖邦  阅读(555)  评论(0编辑  收藏  举报