zoukankan      html  css  js  c++  java
  • MySQL教程63-MySQL 聚合函数

     

    MAX函数:查询指定列的最大值

    MySQL MAX() 函数是用来返回指定列中的最大值。

    为了方便理解,首先创建一个学生成绩表 tb_students_score,学生成绩表的数据内容如下所示。

    mysql> use test_db;
    Database changed
    mysql> SELECT * FROM tb_students_score;
    +--------------+---------------+
    | student_name | student_score |
    +--------------+---------------+
    | Dany         |            90 |
    | Green        |            99 |
    | Henry        |            95 |
    | Jane         |            98 |
    | Jim          |            88 |
    | John         |            94 |
    | Lily         |           100 |
    | Susan        |            96 |
    | Thomas       |            93 |
    | Tom          |            89 |
    +--------------+---------------+
    10 rows in set (0.13 sec)
    View Code

    【实例 1】在 tb_students_score 表中查找最高的成绩,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT MAX(student_score)
        -> AS max_score
        -> FROM tb_students_score;
    +-----------+
    | max_score |
    +-----------+
    |       100 |
    +-----------+
    1 row in set (0.06 sec)
    View Code

    由运行结果可以看到,MAX() 函数查询出 student_score 字段的最大值为 100。

    MAX() 函数不仅适用于查找数值类型,也可应用于字符类型。

    【实例 2】在 tb_students_score 表中查找 student_name 的最大值,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT MAX(student_name)
        -> AS max_name
        -> FROM tb_students_score;
    +----------+
    | max_name |
    +----------+
    | Tom      |
    +----------+
    1 row in set (0.03 sec)
    View Code

    由运行结果可以看到,MAX() 函数可以对字母进行大小判断,并返回最大的字符或者字符串值。

    注意:MAX() 函数还可以返回任意列中的最大值,包括返回字符类型的最大值。在对字符类型的数据进行比较时,按照字符的 ASCII 码值大小进行比较,从 a~z,a 的 ASCII 码最小,z 的最大。在比较时,先比较第一个字符,如果相等,继续比较下一个字符,一直到两个字符不相等或者字符结束为止。例如,b 与 t 比较时,t 为最大值;bcd 与 bca 比较时,bcd 为最大值。

    MIN函数:查询指定列的最小值

    MySQL MIN() 函数是用来返回查询列中的最小值。

    操作类似MAX函数, 只是作用相反, 不赘述

    提示:MIN() 函数与 MAX() 函数类似,不仅适用于查找数值类型,也可应用于字符类型。

    COUNT函数:统计查询结果的行数

    MySQL COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

    • COUNT(*) 计算表中总的行数,无论某列有数值或者为空值。
    • COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

    这里需要用到以下在介绍 MAX() 函数时创建的表 tb_students_score 。

    【实例】查询 tb_students_score 表中总的行数,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT COUNT(student_name)
        -> AS students_number
        -> FROM tb_students_score;
    +-----------------+
    | students_number |
    +-----------------+
    |              10 |
    +-----------------+
    1 row in set (0.03 sec)
    View Code

    由查询结果可以看到,COUNT(*) 返回 tb_students_score 表中记录的总行数,无论值是什么。返回的总数的名称为 students_number。

    提示:在计算总数的时候对待 NULL 值的方式是,指定列的值为空的行被 COUNT() 函数忽略,但若不指定列,而在 COUNT() 函数中使用星号“*”,则所有记录都不忽略。

    SUM函数:求和

    MySQL SUM() 是一个求总和的函数,返回指定列值的总和。

    SUM() 函数是如何工作的?

    • 如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0。
    • DISTINCT 运算符允许计算集合中的不同值。
    • SUM 函数忽略计算中的 NULL 值。

    这里需要用到以下在介绍 MAX() 函数时创建的表 tb_students_score 。

    【实例】在 tb_students_score 表中计算学生成绩的总分,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT SUM(student_score)
        -> AS score_sum
        -> FROM tb_students_score;
    +-----------+
    | score_sum |
    +-----------+
    |       942 |
    +-----------+
    1 row in set (0.00 sec)
    View Code

    由查询结果可以看到,SUM() 函数返回学生的所有成绩之和为 942。

    提示:SUM() 函数在计算时,忽略列值为 NULL 的行。

    AVG函数:求平均值

    MySQL AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

    这里需要用到以下在介绍 MAX() 函数时创建的表 tb_students_score 。

    【实例】在 tb_students_score 表中,查询所有学生成绩的平均值,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT AVG(student_score)
        -> AS score_avg
        -> FROM tb_students_score;
    +-----------+
    | score_avg |
    +-----------+
    |   94.2000 |
    +-----------+
    1 row in set (0.03 sec)
    View Code
    提示:使用 AVG() 函数时,参数为要计算的列名称,若要得到多个列的平均值,则需要在每一列都使用 AVG() 函数。
  • 相关阅读:
    物联网浪潮之下如何从 0 到 1开启智能化硬件开发?
    安卓开发工程师应该这样快速使用机智云APP开源框架
    hdu 1246
    UVa202
    CodeForces
    热身经验被打脸总结大会感想
    多重背包的二进制优化
    背包问题+欧拉筛法
    HDU 1106
    HDU 1215
  • 原文地址:https://www.cnblogs.com/no-celery/p/13533670.html
Copyright © 2011-2022 走看看