分组函数又叫多行处理函数
    多行处理函数特点:多个输入,对应1个输出。

    1. count # 计数 count(ename)
    2. sum # 求和 sum(sal)
    3. avg # 平均值 avg(sal)
    4. max # 最大值 max(sal)
    5. min # 最小值 min(sal)
    6. 注意:
    7. 1. 分组函数在使用的时候必须先进行分组,然后才能用。如果你没有对数据进行分组,整张表默认为一组。 //select …… from ……
    8. //NULL只要参与运算,最终结果一定是NULL。
    9. 2. //分组函数自动忽略NULL,你不需要提前对NULL进行处理。
    10. mysql> select sum(comm) from emp;
    11. +-----------+
    12. | sum(comm) |
    13. +-----------+
    14. | 2200.00 |
    15. +-----------+
    16. 3. 分组函数中count(*)和count(具体字段)有什么区别?
    17. count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
    18. mysql> select count(comm) from emp;
    19. +-------------+
    20. | count(comm) |
    21. +-------------+
    22. | 4 |
    23. +-------------+
    24. count(*):统计表当中的总行数。(只要有一行数据count则++)
    25. mysql> select count(*) from emp;
    26. +----------+
    27. | count(*) |
    28. +----------+
    29. | 14 |
    30. +----------+
    31. 因为每一行记录不可能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。
    32. 4. 分组函数不能够直接使用在where子句中。
    33. select ename,sal from emp where sal > min(sal);//报错
    34. 分组函数在使用时必须先分组(group by
    35. 5. 所有的分组函数可以组合起来一起用。
    36. mysql> select sum(sal),max(sal),min(sal),avg(sal),count(ename) from emp;
    37. +----------+----------+----------+-------------+--------------+
    38. | sum(sal) | max(sal) | min(sal) | avg(sal) | count(ename) |
    39. +----------+----------+----------+-------------+--------------+
    40. | 29025.00 | 5000.00 | 800.00 | 2073.214286 | 14 |
    41. +----------+----------+----------+-------------+--------------+