where, group by, having

where vs having 当一个sql语句中存在where子句,会先执行where,然后执行group by,然后执行having. 一般来说,only use 'having' when you use 'group by' Always use 'having' with aggregate function. 下面的例子,虽然执行后的结果集一样,但是执行的步骤不同,前者先filter,再group by,后者先group by,然后filter,显然前者更好,而后者浪费了计算资源。 SELECT state, COUNT(*) FROM Test WHERE state IN ('CA', 'LA') GROUP BY state ORDER BY state SELECT state, COUNT(*) FROM Test GROUP BY state HAVING state IN ('CA', 'LA') ORDER BY state
posted @ 2014-06-29 13:49  门对夕阳  阅读(299)  评论(0编辑  收藏  举报