zoukankan      html  css  js  c++  java
  • SQL 必知必会·笔记<7>汇总数据——使用聚合函数

    有时候我们需要对表中的数据进行汇总,而不需要数据本身,为了方便这些类型的检索,SQL给出了5个聚合函数,SQL聚合函数在各主要的SQL实现中得到了相当一致的支持。如下:

    1.1 AVG()函数

    AVG()通过对表中行数计数并计算其列值之和,求得该列的平均值

    //AVG()示例:
    SELECT AVG(prod_price) AS avg_price
    FROM Products
    WHERE vend_id = 'DLL01';

     注意:只用于单个列

    AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参 数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

     说明:NULL 值

    AVG()函数忽略列值为NULL 的行。

    1.2 COUNT()函数

    COUNT()可以确定表中行的数目或符合特定条件的行的数目。

    COUNT()函数的两种使用方式

    • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
    • 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL 值。
    //示例
    SELECT COUNT(*) AS num_cust
    FROM Customers;

    说明:NULL 值

    如果指定列名,则COUNT()函数会忽略指定列的值为空的行,但如果 COUNT()函数中用的是星号(*),则不忽略。

    1.3 MAX()函数

    MAX()返回指定列中的最大值。MAX()要求指定列名

    //示例
    SELECT MAX(prod_price) AS max_price
    FROM Products;

    提示:对非数值数据使用MAX()和MIN()

    虽然MAX()一般用来找出最大的数值或日期值,但许多(并非所有) DBMS 允许将它用来返回任意列中的最大值,包括返回文本列中的最 大值。在用于文本数据时,MAX()返回按该列排序后的最后一行。

    说明:NULL 值

    MAX()和Min()函数忽略列值为NULL 的行。

    1.4 MIN()函数

    MIN()的功能正好与MAX()功能相反,它返回指定列的最小值

    //示例
    SELECT MIN(prod_price) AS min_price
    FROM Products;

    1.5 SUM()函数

    SUM()用来返回指定列值的和(总计)

    SELECT SUM(quantity) AS items_ordered
    FROM OrderItems
    WHERE order_num = 20005;

    提示:在多个列上进行计算

    如本例所示,利用标准的算术操作符,所有聚集函数都可用来执行多 个列上的计算。

    说明:NULL 值

    SUM()函数忽略列值为NULL 的行。

    1.6 聚合不同的值

    对于上面的五个函数都可以如下使用:

    • 对所有行执行计算,指定ALL 参数或不指定参数(因为ALL 是默认行为)。
    • 只包含不同的值,指定DISTINCT 参数。

    提示:ALL 为默认

    ALL 参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则 假定为ALL。

    DISTINCT示例

    SELECT AVG(DISTINCT prod_price) AS avg_price
    FROM Products
    WHERE vend_id = 'DLL01';

    注意:DISTINCT 不能用于COUNT(*)

    如果指定列名,则DISTINCT 只能用于COUNT()。DISTINCT 不能用 于COUNT(*)。类似地,DISTINCT 必须使用列名,不能用于计算或表 达式。

  • 相关阅读:
    Assets Pipeline
    how to execute-shell-commands by ruby
    DFS---迷宫问题
    病毒感染监测
    RE数组开多大?
    C++如何输入含空格的字符串
    后缀算术表达式
    中缀表达式转化为后缀表达式
    基于两端操作的循环队列的实现---怎么判断队满??
    循环队列--忘记分配空间和如何用tag判断队空队满
  • 原文地址:https://www.cnblogs.com/IPrograming/p/3278750.html
Copyright © 2011-2022 走看看