聚合函数
聚合函数就是将多行数据转换成为一行的函数。需要注意的是他不能够在WHERE子句中使用。
求值的聚合函数
求值的聚合函数有五个,分别是:
- SUM
- AVG
- MAX
- MIN
- COUNT
通过名字很容易明白该函数的意思。
这里需要注意的点是SUM
和AVG
只能够用于数值型数据,同时在遇到NULL时,会将其忽略。而MAX
MIN
几乎可以用于所有的数据类型,例如字符以及日期。
COUNT
在使用中也有需要注意的地方就是对于COUNT(*)
他不会忽略NULL,而当我们指定某一列为聚合键的时候,NULL将被忽略。
GROUP BY
他的作用是将数据分组。
到目前为止我们可以将SQL的语法顺序总结为:
SELECT->FROM->WHERE->GROUP BY
不过我们需要注意的是,SQL的语法顺序与DBMS的解析执行顺序并不相同,MS的解析顺序为:
FROM->WHERE->GROUP BY->SELECT
当然其中的WHERE
以及GROUP BY
不是必须的。
然后再看到GROUP BY
。我的理解是,在GROUP BY
这一步之前是对一整个数据表进行处理:
在他之后,系统将原本完整的数据表按照提供的聚合键拆分成为多个数据表,然后对每个数据表分别执行SELECT
子句,之后再将执行结果整合到一起。
正确来讲,每个拆分出来的数据表SELECT后的结果应该只有一行。所以当有GROUP BY
子句时SELECT
的聚合键只支持:
- 字面量
- 聚合函数
GROUP BY
使用的聚合键对应的列名
同时GROUP BY
的数据是无序的。