单独地使用group by没意义,它只能显示出每组记录的第一条记录。
除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。
GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。
having 用来分组查询后指定一些条件来输出查询结果,having作用和where类似,但是having只能用在group by场合,并且必须位于group by之后order by之前。
第一个sql语句可以执行,但是第二个会报错。
- WHERE子句不起作用,因为过滤是基于分组聚集值而不是特定行值的。
- 二者作用的对象不同,where子句作用于表和视图,having作用于组。
- WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
WHERE子句过滤所有prod_price至少为10的行。然后按vend_id分组数据,HAVING子句过滤计数为2或2以上的分组。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/5622.html