美文网首页SQL必知必会
SQL学习08 汇总数据

SQL学习08 汇总数据

作者: ATHAS | 来源:发表于2016-07-10 21:33 被阅读0次

    聚集函数

    聚集函数(aggregate function)对某些行运行的函数,计算并返回一个值。

    1 AVG()函数

    SELECT AVG(prod_price) AS avg_price

    FROM Products;

    警告:只用于单个列

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

    说明:NULL值

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

    2 COUNT()函数

    COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。

    - 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

    - 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

    说明:NULL值

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

    3 MAX()函数 MIN()

    5 SUM()函数

    SELECT SUM(item_price*quantity)AS total_price

    FROM OrderItems

    WHERE order_num=20005;

    说明:NULL值

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

    聚集不同值

    - 对所有行执行计算,指定ALL参数或不指定参数(因为ALL是默认行为)。

    - 只包含不同的值,指定DISTINCT参数。

    提示:ALL为默认

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

    在使用了DISTINCT后,此例子中的avg_price比较高,因为有多个物品具有相同的较低价格。排除它们提升了平均价格。

    SELECT AVG(DISTINCT prod_price)AS avg_price

    FROMProducts

    WHERE vend_id='DLL01';

    警告:DISTINCT不能用于COUNT(*)

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

    组合聚集函数

    SELECT COUNT(*)AS num_items,

                 MIN(prod_price)AS price_min,

                 MAX(prod_price)AS price_max,

                 AVG(prod_price)AS price_avg

    FROMProducts;

    相关文章

      网友评论

        本文标题:SQL学习08 汇总数据

        本文链接:https://www.haomeiwen.com/subject/hdvdjttx.html