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
拥有和在哪里有什么区别
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
拥有和在哪里有什么区别
where
上的过滤器select ... from
having
过滤来自的聚合结果group by ...
因此,再次查看您的示例:
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
在这里,WHERE column_name operator value
说“返回 table_name 的结果,其中 'column_name operator value' 为真”。
只有在找到这些条件的所有结果后,它才会按 column_name 分组。
然后HAVING aggregate_function(column_name) operator value
说“对于生成的聚合组,运行 'aggregate_function(column_name)' 并仅返回 'aggregate_function(column_name) operator value' 为真的结果。”