在 SQL 查询中,WHERE
和 HAVING
是两个常用的关键字,它们有着不同的作用。
WHERE
关键字用于在查询中指定条件,限制查询结果集中的行。例如,SELECT * FROM table_name WHERE condition;
查询语句会基于指定的条件(condition
)从表中获取符合条件的记录。
HAVING
关键字用于 SQL 聚合函数之后的筛选,可以对查询结果进行分组,并对每个组进行聚合(例如求和或计数),然后过滤聚合结果。HAVING
关键字通常与 GROUP BY
子句一起使用。例如,SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > 100;
查询语句会先对表中的所有记录按照 column1
进行分组,然后对每个组中的 column2
值进行求和,最后仅返回那些总和大于 100 的组。
总的来说,WHERE
对应的条件是在聚合函数计算之前进行筛选,而 HAVING
对应的条件是在聚合函数计算之后进行筛选;WHERE
用于过滤行,HAVING
用于过滤组。
聚合函数
在 SQL 查询中,聚合函数是应用于结果集的一组函数,用于对结果集中的行进行分组统计,并返回一个聚合值,例如平均值、总和或计数。常见的聚合函数包括:SUM
、AVG
、COUNT
、MAX
、MIN
等。
聚合函数经常与GROUP BY
一起使用,以对结果集进行分组计算。GROUP BY
子句将返回的结果集拆分成不同的分组,而聚合函数则根据分组计算出聚合值,分别返回每个分组的结果。
以下是一些聚合函数的示例:
COUNT(column)
:返回符合条件的行数。SUM(column)
:返回指定列的总和。AVG(column)
:返回指定列的平均值。MAX(column)
:返回指定列的最大值。MIN(column)
:返回指定列的最小值。
聚合函数非常有用,可以在查询中生成有意义的统计信息,例如计算销售总额、平均价格、最高利润等。