zoukankan      html  css  js  c++  java
  • T-SQL:毕业生出门需知系列(九)

    《SQL 必知必会》读书笔记 -- 第9课 汇总数据

     

    9.1 聚集函数:对某些行运行的函数,计算并返回一个值
      案例:
      -- 确定表中函数
      -- 获得表中某些行的和
      -- 找出表列的最大值、最小值和平均值等

      --当我们实际想要汇总信息,而不是需要数据本身时,可节省时间和带宽。

      --表9-1
      --函数      说明
      --AVG()    返回某列的平均值
      --COUNT()   返回某列的行数
      --MAX()    返回某列的最大值
      --MIN()    返回某列的最小值
      --SUM()    返回某列值之和

    9.1.1 AVG()  函数:返回某列的平均值

    1 SELECT AVG(prod_price) AS avg_price 
    2 FROM dbo.Products;
    4 --分析:此 avg_price 包含 Products 表中所有产品的平均价格

    SELECT AVG(prod_price) AS avg_price 
    FROM dbo.Products
    WHERE vend_id = 'DLL01';
    --分析:WHERE 过滤出 vend_id 为 DLL01 的产品,因此 avg_price 返回的值只是该供应商产品的平均值

      【注意】AVG()  函数忽略列值为 NULL 的行

    9.1.2 COUNT()  函数:确定表中行的数目或符合特定条件的行的数目
    -- 使用方式:
    -- 使用 COUNT(*) 对表中行的数目进行技术,不管表列中包含的是空值(NULL)还是非空值
    -- 使用 COUNT(column) 对特定列中具有值的行进行计数,忽略 NULL 值

    SELECT COUNT(*) AS num_cust
    FROM dbo.Customers;
    --返回Customers表中的顾客数

    SELECT COUNT(cust_email) AS num_cust
    FROM dbo.Customers;
    --这里只对具有电子邮件地址的客户进行计数,结果为3,表示5个顾客中只有3个顾客有电子邮件
    --分析:因为这里指定了列名,COUNT()会忽略指定列的值为空的行

    9.1.3 MAX() 函数:返回指定列中的最大值
    --要求:指定列名

    SELECT MAX(prod_price) AS max_price
    FROM dbo.Products;
    --返回的是Products表中最贵重的物品的价格

      【注意】MAX() 忽略列值为NULL的行

    9.1.4 MIN() 函数:与 MAX() 相反,返回指定列的最小值。
    --要求:指定列名

    SELECT MIN(prod_price) AS min_price
    FROM dbo.Products;
    --返回的是Products表中最便宜的物品的价格

      【注意】MIN() 忽略列值为 NULL 的行

    9.1.5 SUM() 函数:返回指定列值的总和(总计)

    SELECT SUM(quantity) AS items_ordered
    FROM dbo.OrderItems
    WHERE order_num = 20005;
    --分析:SUM(quantity)返回订单中所有物品数量之和,WHERE 子句保证只统计某个物品订单中的物品

    SELECT SUM(item_price*quantity) AS total_price
    FROM dbo.OrderItems
    WHERE order_num = 20005;
    --分析:SUM(item_price*quantity) 返回订单中所有物品价钱之和,WHERE 子句保证值统计某个物品订单中的物品

      【注意】SUM() 忽略列值为 NULL 的行

    9.2 聚集不同的值
    --以上5个聚集函数都可以使用:DISTINCT 参数,只包含不同的值

    SELECT AVG(DISTINCT prod_price) AS avg_price 
    FROM dbo.Products
    WHERE vend_id = 'DLL01';
    --因为使用了 DISTINCT 参数,因此平均值只考虑各个不同的价格

      【注意】DISTINCT 不能用于 COUNT(*) ,但可用于 COUNT(column)
      【提示】虽可用于 MIN() 和 MAX() ,但这样没有实际价值

    9.3 组合聚集函数

    SELECT COUNT(*) AS num_items,
        MIN(prod_price) AS price_min,
        MAX(prod_price) AS price_max,
        AVG(prod_price) AS price_avg
    FROM dbo.Products;
    --使用单条SELECT语句执行了4个聚集计算,返回4个值(Products表中物品的数目,产品价格的最高值、最低值以及平均值)
    --使用聚集函数建议取别名让数据更清晰

  • 相关阅读:
    基于C#.NET C/S架构的生产看板管理系统软件开发框架平台
    VS.NET后端框架,C#.NET开发的服务器端开发框架
    开源.NET开发架构.NET管理系统框架-原创作品
    开源.NET开发架构 .NET管理系统框架
    基于MVC架构的WebApi服务端开发框架核心优势|C/S框架网原创作品
    基于C#.NET三层架构物流运输管理系统(TMS)-C/S框架网原创作品
    C#Winform+SQL开发的基于C/S架构大型ERP系统
    MES系统框架及MES开源框架|C/S框架网软著产品
    C#.NET程序升级框架之软件版本自动升级系统
    原创C/S应用程序开发平台与.NET快速开发框架
  • 原文地址:https://www.cnblogs.com/liqingwen/p/5771519.html
Copyright © 2011-2022 走看看