MySQL——使用集合函数查询

MySQL 集合函数
函数 作用
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列的的和

1.  COUNT()  函数

        COUNT()  函数统计数据表中包含的记录行数,或者根据查询结果返回列中包含的数据行数。

        使用方法:

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

    【例】建立如下数据表

mysql> SELECT  *  FROM  customers;
+-------+----------+-----------------------+---------+--------+-----------+-------------------+
| c_id  | c_name   | c_address             | c_city  | c_zip  | c_contact | c_email           |
+-------+----------+-----------------------+---------+--------+-----------+-------------------+
| 10001 | RedHook  | 200 Street            | Tianjin | 300000 | LiMing    | [email protected]    |
| 10002 | Stars    | 333 Fromage  Lane     | DaLian  | 116000 | ZhangBo   | [email protected] |
| 10003 | Netbhood | 1  Sunny  Place       | Qingdao | 266000 | LuoCong   | NULL              |
| 10004 | JOTO     | 829  Riverside  Drive | HaiKou  | 570000 | YangShan  | [email protected]   |
+-------+----------+-----------------------+---------+--------+-----------+-------------------+

查询  customers 表中总的行数 ,SQL  语句如下:

mysql> SELECT  COUNT(*)  AS  cust_num
    -> FROM  customers;
+----------+
| cust_num |
+----------+
|        4 |
+----------+

    查询  customers  表中有电子邮箱的顾客的总数,SQL  语句如下:

mysql> SELECT  COUNT(c_email)  AS  cust_num
    -> FROM  customers;
+----------+
| cust_num |
+----------+
|        3 |
+----------+

2.  SUM()  函数

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

    SUM()  函数在计算时, 会忽略列值为  NULL  的行

3.  AVG()  函数

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

【例】fruits 表。

mysql> select *  from  fruits;
+------+------+------------+---------+
| f_id | s_id | f_name     | f_price |
+------+------+------------+---------+
| a1   |  101 | apple      |    5.20 |
| a2   |  103 | apricot    |    2.20 |
| b1   |  101 | blackberry |   10.20 |
| b2   |  104 | berry      |    7.60 |
| b5   |  107 | xxxx       |    3.60 |
| bs1  |  102 | orange     |   11.20 |
| bs2  |  105 | melon      |    8.20 |
| c0   |  101 | cherry     |    3.20 |
| l2   |  104 | lemon      |    6.40 |
| m1   |  106 | mango      |   15.60 |
| m2   |  105 | xbabay     |    2.60 |
| m3   |  105 | xxtt       |   11.60 |
| o2   |  103 | coconut    |    9.20 |
| t1   |  102 | blanana    |   10.30 |
| t2   |  102 | grape      |    5.30 |
| t4   |  107 | xbababa    |    3.60 |
+------+------+------------+---------+

查询 s_id=103 的供应商的水果价格的平均值。

mysql> SELECT  AVG(f_price)  AS  avg_price
    -> from fruits
    -> where  s_id = 103;
+-----------+
| avg_price |
+-----------+
|  5.700000 |
+-----------+

AVG( )  可以与  GROUP  BY 一起使用,来计算每个分组的平均值。

【例】在 fruits 表中,查询每个供应商的水果价格的平均值。SQL  语句如下:

mysql> SELECT s_id, AVG(f_price)  AS  avg_price
    -> from  fruits
    -> group by  s_id;
+------+-----------+
| s_id | avg_price |
+------+-----------+
|  101 |  6.200000 |
|  102 |  8.933333 |
|  103 |  5.700000 |
|  104 |  7.000000 |
|  105 |  7.466667 |
|  106 | 15.600000 |
|  107 |  3.600000 |
+------+-----------+
【提示】AVG() 函数的参数为要计算的列名称,如果要得到多个列的多个平均值,则需要在每一列上都使用 AVG() 函数。


4.  MAX() 函数

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

    【例】在  fruits 表中查找市场上价格最高的水果。

mysql> SELECT MAX(f_price)  AS  max_price  from  fruits;
+-----------+
| max_price |
+-----------+
|     15.60 |
+-----------+
    MAX()  函数不仅适用于查找数值类型,也可以查找字符类型。


【例】在  fruits  表中查找 f_name 的最大值。SQL 语句如下:

mysql> SELECT  MAX(f_name) from  fruits;
+-------------+
| MAX(f_name) |
+-------------+
| xxxx        |
+-------------+

5.  MIN() 函数

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

【例】在  fruits 表中查找市场上价格最低的水果。

mysql> SELECT  MIN(f_price)  AS  min_price  from  fruits;
+-----------+
| min_price |
+-----------+
|      2.20 |
+-----------+
    MIN( )  可以与  GROUP  BY 一起使用,求出每个分组的最小值。


【例】在 fruits 表中查询不同供应商的提供的价格最低的水果。SQL  语句如下:

mysql> SELECT  S_id , MIN(f_price)  AS  min_price
    -> from  fruits
    -> GROUP BY s_id;
+------+-----------+
| S_id | min_price |
+------+-----------+
|  101 |      3.20 |
|  102 |      5.30 |
|  103 |      2.20 |
|  104 |      6.40 |
|  105 |      2.60 |
|  106 |     15.60 |
|  107 |      3.60 |
+------+-----------+
    GROUP BY 关键字根据  s_id  字段对记录进行分组,然后计算出每个分组中的最小值。
    MIN()  函数  MAX()  函数类似,不仅适用于查找数值类型,也可用于查找字符类型。


猜你喜欢

转载自blog.csdn.net/qq_41573234/article/details/80229869