SQL必知会(二)-SQL查询篇(8)-汇总数据

第9课、汇总数据

(1)聚集函数

对某列的多行数值进行汇总,比如求某列中所有行的值之间得出的平均值,总和,最大小值等。

表9-1 SQL 聚集函数

函数说明
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM返回某列值之
1)AVG() 函数
AVG 函数只能用来确定特定数值列的平均值。

需求:计算 Products 表中所有产品的平均价格。

SELECT AVG(prod_price) AS avg_price
FROM Products;

输出结果:

avg_price
---------
6.823333

需求:计算 供应商为 DLL01的所有产品的平均价格。

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

输出结果:

avg_price
---------
3.865000

2)COUNT() 函数
对表中行的数目进行计数,列中包括非空值和空值。

需求:计算 Customers 表中顾客的总数。

SELECT COUNT(*) AS num_cust
FROM Customers;

输出结果:

num_cust
--------
5

需求:计算只对具有电子邮件地址的客户总数。

SELECT COUNT(cust_email) AS num_cust
FROM Customers;

输出结果:

num_cust
--------
3

--若该 cust_email 列存在 NULL 值,则不计数
3)MAX() 函数
MAX 函数返回指定列的最大值,忽略掉列值为 NULL 的行。

需求:计算 Products 表中最贵物品的价格。

SELECT MAX(prod_price) AS max_price
FROM Products;

输出结果:

max_price
---------
11.99

MIN()、SUM 跟 MAX 用法差不多,就不再做这个笔记了。

(2)聚集不同值

以上5个聚集函数(即表9-1 SQL 聚集函数)都可使用:

  • 对所有执行计算的出来的值,指定 ALL 参数(ALL 是默认的,也可不用设置该参数)
  • 只包含不同的值,指定 DISTINCT 参数。
4)DISTINCT 不能用于 COUNT(通配符)

需求:由于产品中存在相同的价格值,会导致不能准确得出平均价格值。因此需要排除物品相同的价格,而只使用一个相同的值作为代表,来计算所有物品的平均价格。

-- 过滤掉 prod_price 列的重复值,只取一个作为代表值。
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';

输出结果:

avg_price
---------
4.240000

(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 Products;

输出结果:

num_items | price_min | price_max | price_avg
---------------------------------------------
9         | 3.49      | 11.99     | 6.823333
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL Server第四章-数据的查询()主要介绍了SQL Server中数据查询的高级技巧,包括使用多个表进行联合查询、使用子查询进行嵌套查询、使用聚合函数进行数据汇总和分组查询、使用窗口函数进行数据分析和排序等。这些技巧可以帮助用户更加灵活地查询和分析数据,提高数据处理的效率和精度。同时,本章还介绍了一些常用的查询优化技巧,如创建索引、使用视图和存储过程等,以提高查询的性能和可维护性。总之,本章内容丰富,涵盖了SQL Server中数据查询的各个方面,是SQL Server学习和应用的重要一章。 ### 回答2: 本章主要介绍了 SQL Server 中数据的查询操作,包括查询语句的基本框架、关键字、通配符、函数、排序和分组等。其中,查询语句的基本框架包括 SELECT、FROM、WHERE、GROUP BY、HAVING 和 ORDER BY 这几个关键字,每个关键字所代表的含义和在语句中的使用方法都得到了详细讲解。 在查询语句中,WHERE 关键字用于过滤数据,可以使用各种比较运算符和逻辑运算符实现复杂的查询条件。通配符也是查询语句的重要组成部分,可以使用百分号(%)和下划线(_)代表任意字符或一定范围内的字符。同时,SQL Server 中也提供了丰富的函数,如字符串函数、数学函数、日期函数、聚合函数等,可以用于查询结果的处理和整理。 查询数据时,排序和分组是非常实用的功能。ORDER BY 关键字可以按照指定的列或表达式对结果集中的数据进行排序,而 GROUP BY 关键字则可将结果按照指定的列或表达式进行分组,并计算每个组的聚合值。 代码示例也随之出现,并详细讲解了其运行过程和结果。整个章节贯穿 SQL Server 中数据的查询、过滤、排序、分组等基本操作,为读者提供了较为系统化的 SQL Server 基础知识,值得初学者和进阶者一试。 ### 回答3: 在SQL Server的第四章节中,我们学习了如何对数据进行查询。在本节的第部分,我们将深入探讨SQL Server的查询功能,并介绍一些高级查询技巧。 首先,我们将介绍SQL Server的内置函数。内置函数分为三类:数值函数、字符函数和日期/时间函数。数值函数用于执行数学运算,包括SUM、AVG、MIN和MAX等。字符函数用于在字符数据上执行操作,例如LEN(计算字符串长度)、UPPER(将字符串转换为大写)和LOWER(将字符串转换为小写)。日期/时间函数用于在日期和时间上执行操作,例如GETDATE(返回当前日期和时间)和DATEPART(返回日期或时间部分的值)。 接下来,我们将介绍如何使用子查询。子查询是一种查询语句,它嵌套在另一个查询语句中。子查询用于从另一个查询中检索数据,并返回一个结果集。子查询可以用于任何SQL语句,包括SELECT、INSERT、UPDATE和DELETE。在使用子查询时,我们需要确保其返回的结果集不为空。 在SQL Server中,我们还可以使用JOIN操作。JOIN操作用于将两个或多个表连接起来,从而创建新的结果集。JOIN操作分为INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN四种类型。INNER JOIN返回与两个表关联的行,LEFT JOIN返回与左表关联的行,RIGHT JOIN返回与右表关联的行,FULL OUTER JOIN返回两个表中所有的行。 最后,我们将介绍如何使用GROUP BY和HAVING进行分组和过滤。GROUP BY用于按照一个或多个列对结果集进行分组,HAVING用于在分组结果集上进行过滤。通过使用GROUP BY和HAVING,我们可以创建汇总报表,例如按照地区、产品类型和销售额对销售数据进行分组和过滤的报表。 综上所述,SQL Server的查询功能非常强大。通过使用内置函数、子查询、JOIN、GROUP BY和HAVING等高级技巧,我们可以对大量数据进行高效的查询和分析。因此,我们需要不断学习和实践,以便提高我们的查询技能并更好地应对复杂的数据分析需

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值