开发者

Difference between HAVING and WHERE clause in SQL [duplicate]

This question already has answers here: 开发者_运维技巧 What is the difference between HAVING and WHERE in SQL? (18 answers) Closed 9 years ago.
SELECT column_name, aggregate_function(column_name) 
FROM table_name 
WHERE column_name operator value 
GROUP BY column_name 
HAVING aggregate_function(column_name) operator value

What is the difference between having and where


where filters on the select ... from

having filters on the aggregate results from the group by ...

So, looking at your example again:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value

Here, WHERE column_name operator value says "Return results for table_name where 'column_name operator value' is true".

Only after all the results from these conditions are found, it groups by column_name.

Then HAVING aggregate_function(column_name) operator value says "For the resulting aggregate groups, run 'aggregate_function(column_name)' and return only results where 'aggregate_function(column_name) operator value' is true."


  1. WHERE clause can be used with SELECT,INSERT,DELETE etc statement but the HAVING clause can only be used with SELECT statement.
  2. HAVING clause can only be used with GROUP BY clause
  3. In WHERE clause we can not use any agregate function directly
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜