Have 子句和 Group by 子句的区别
1. Having子句:
Having子句基本上就像带有 GROUP BY 子句的聚合函数。HAVING 子句代替 WHERE 与聚合函数一起使用。而 GROUP BY 子句将具有相同值的行分组为汇总行。Having子句与 where 子句一起使用,以查找具有特定条件的行。Having子句总是在 group By 子句之后使用。
SELECT COUNT (SALARIES) AS COUNT_SALARIES, EMPLOYEES
FROM EMPLOYEES
GROUP BY SALARIES
HAVING COUNT(SALARIES) > 1;
2. GROUP BY 子句:
GROUP BY 子句通常与聚合函数(MAX、SUM、AVG)一起使用,以按一列或多列对结果进行分组,或者简单地说 GROUP BY 子句与 SELECT 语句配合使用来排列所需的数据 成组。
GROUP BY 语句将具有相同值的行分组。GROUP BY 子句用在 where 子句之后。此语句通常与 SUM、AVG、COUNT 等聚合函数一起使用。按一列或多列对结果进行分组。
SELECT COUNT (SALARIES) AS COUNT_SALARIES, EMPLOYEES
FROM EMPLOYEES
GROUP BY SALARIES;
Having 子句和 Group by 子句的区别:
编号 | Having 子句 | Group by 子句 |
---|---|---|
1 | Having 子句用于对查询应用一些额外的条件。 | group by 子句用于根据特定的列或行对数据进行分组。 |
2 | 没有 group by 子句的情况下,Having 子句可以在聚合函数中使用,它的行为类似于 where 子句。 | group by 可以在没有 select 语句的子句的情况下使用。 |
3 | having子句可以包含聚合函数。 | Group by 子句不能包含聚合函数。 |
4 | Having 子句使用某些条件限制查询输出 | Group by 子句根据某些行或列对输出进行分组。 |