T-SQL:毕业生出门需知系列(九)

时间:2022-10-30 22:41:40

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

T-SQL:毕业生出门需知系列(九)

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

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

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

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

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

T-SQL:毕业生出门需知系列(九)

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

T-SQL:毕业生出门需知系列(九)

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

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

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

T-SQL:毕业生出门需知系列(九)

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

T-SQL:毕业生出门需知系列(九)

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

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

T-SQL:毕业生出门需知系列(九)

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

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

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

T-SQL:毕业生出门需知系列(九)

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

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

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

T-SQL:毕业生出门需知系列(九)

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

T-SQL:毕业生出门需知系列(九)

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

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

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

T-SQL:毕业生出门需知系列(九)

  【注意】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表中物品的数目,产品价格的最高值、最低值以及平均值)
--使用聚集函数建议取别名让数据更清晰

T-SQL:毕业生出门需知系列(九)

T-SQL:毕业生出门需知系列(九)的更多相关文章

  1. T-SQL:毕业生出门需知系列(四)

    第4课 过滤数据 4.1 使用 WHERE 子句:过滤 只检索所需数据需要指定搜索条件(即过滤条件). WHERE 子句在表名(FROM 子句)后给出,根据 WHERE 子句中指定的条件过滤. SEL ...

  2. T-SQL:毕业生出门需知系列(二)

    第2课 检索数据 2.1 SELECT 语句 用途:从一个或多个表中检索数据信息 关键字:作为SQL组成部分的保留字.关键字不能用作表或列的名字. 为了使用SELECT检索表数据,必须至少给出两条信息 ...

  3. T-SQL:毕业生出门需知系列(目录)

    一.前言: 作为一个应届毕业生又要准备面试 ASP.NET 攻城狮了,以前在图书馆觉得这本书讲得挺基础,这次回家就自己买了本用来复习,顺便做下读书笔记. 第4版 二.代码下载: 官方:http://f ...

  4. T-SQL:毕业生出门需知系列(八)

    第8课 使用函数处理数据 8.1 函数 [名词]可移植:所编写的代码可以在多个系统上运行 8.2 使用函数 8.2.1 文本处理函数 例1:使用 UPPER() 函数--将文本转换为大写 SELECT ...

  5. T-SQL:毕业生出门需知系列(七)

    第7课 创建计算字段 7.1 计算字段(格式化字段) 存储在数据库表中的数据一般不是应用程序所需要的格式,如: 1.需要显示公司名,同时还需要显示公司的地址,但这两个信息存储在不同的表列中. 2.列数 ...

  6. T-SQL:毕业生出门需知系列(六)

    第6课 用通配符进行过滤 6.1 LIKE 操作符 前面介绍的所有操作符都是针对已知值进行过滤.但是,这种过滤方法并不是任何时候都好用. 例如:怎样搜索产品名中包含文本 bean bag 的所有产品? ...

  7. T-SQL:毕业生出门需知系列(五)

    第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的 ...

  8. T-SQL:毕业生出门需知系列(三)

    第3课 排序检索数据 3.1 排序数据(ORDER BY) 下面的 SQL 语句返回某个数据库表的单个列.观察其输出,并没有特定的顺序. SELECT prod_name FROM Products; ...

  9. SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

    转自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Micros ...

随机推荐

  1. log4j配置详解

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

  2. 转帖:Python应用性能分析指南

    原文:A guide to analyzing Python performance While it’s not always the case that every Python program ...

  3. hibernate中many-to-one关联时出现ObjectNotFoundException异常

    采用多对一关联,如果一的那端删除了,多的这端无法感知,虽然数据库中可以通过外键配置将多的一端置空,可是在hibernate里面我暂时不知道如何处理. 目前采用的方式: 1.首先,数据库中需要配置好外键 ...

  4. Apache:To Config The Vhost of Django Project

    It is not a good idea to use dev server in Production Environment. Apache or Nginx are good choice.B ...

  5. 自学Zabbix3.9.1-模板Templates-创建

    自学Zabbix3.9.1-模板Templates-创建 1. 模板介绍 模板是一组可以方便地应用于多个主机的实体. 实体可能是: 项目 触发器 图 应用程序 屏幕(因为Zabbix 2.0) 低层次 ...

  6. CSS选取第n个标签元素

    最近做一个项目,碰到这样的需求,需要选取某个元素的倒数第几个标签元素,想让他显示不同的样式 1.first-child first-child表示选择列表中的第一个标签.例如:li:first-chi ...

  7. 安装mingw编译器

    1.下载地址:https://sourceforge.net/projects/mingw/files/latest/download?source=top3_dlp_t5 2. 安装下载的(ming ...

  8. docker学习-lnmp+redis之搭建redis容器服务

    1. 目录映射:/lnmp/data/redis:/data/lnmp/conf/redis/redis.conf:/etc/redis/redis.conf/lnmp/logs/redis:/var ...

  9. python性能分析之cProfile模块

    cProfile是标准库内建的分析工具的其中一个,另外两个是hotshot和profile -s cumulative -s cumulative开关告诉cProfile对每个函数累计花费的时间进行排 ...

  10. R语言之多重共线性的判别以及解决方法

    多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确.   1.可以计算X矩阵的秩qr(X)$rank,如果 ...