SQL Server 高级查询-AVG()(一)

时间煮雨
@R星校长

1关:AVG()函数的使用

返回某一字段的平均值

AVG()函数通过计算某字段(列)内容(行)的个数和它们的数值之和来返回某一字段的平均值。

语法规则为:

SELECT AVG(column_name) 
 FROM table_name 

举个例子

我们想从表 Customers中,检索到所有消费者消费金额的平均值。
Customers的内容如下表所示:
在这里插入图片描述
输入:

SELECT AVG(cost) as avg_cost
FROM Customers

输出:

avg_cost
2415.26

在这个例子里, SELECT 语句只负责返回一个值,这个值就是 avg_costavg_cost 是我们为检索数据起的“小名”,它包含着所有消费者消费金额的平均值。

Tips:

如果你没有为你的检索结果起个“小名”, 那它就只能是供你观赏的一个值,在接下来的操作中,你将不能继续使用它。所以为了以防万一,好的习惯是为自己每一个检索结果,都起一个有意义的名字,好看又好记。

返回某一字段指定内容的平均值

AVG()函数不仅能计算某字段(列)的平均值,如果你愿意,还能为 SELECT 语句增加条件,以此来计算某些特定条件下某字段的平均值。

举个例子

我们想从表Customers中,检索到所有叫Alice 的消费者消费金额的平均值。表 Customers的内容与上例一致。

输入:

SELECT AVG(cost) as avg_alice_cost
FROM Customers
WHERE cust_name LIKE 'Alice%'

与上例不同的是,我们在这里加入了条件筛选语句 WHEREWHERE语句帮我们过滤了所有不叫 Alice的人,因此,我们所查到的消费金额平均值是所有叫Alice的人的消费平均值。

编程要求

我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 Begin-End 区间的代码,返回表Products中商品价格( prod_price )大于平均值的商品的 prod_nameprod_price

其中表 Products 的内容如下表所示:

提示:

  1. 与本关例子不同的是,在练习中需要你们返回的是 prod_nameprod_price,而不是平均值;
  2. 与本关例子不同的是,在练习中需要你们设置的过滤条件是平均值;
  3. SELECT 语句是可以嵌套使用的,比如有如下形式的代码:
SELECT column_A
FROM table
WHERE column_A < (SELECT column_B FROM table)

测试说明

测试过程:

  • 本关涉及到的测试文件是step1_test.sh,平台将运行用户补全的 step1.sql 文件,得到数据;
  • 将得到的数据与答案比较,判断代码是否正确。

如果操作正确,你将得到如下的结果:

在这里插入图片描述

开始你的任务吧,祝你成功!

USE Mall
GO

SET NOCOUNT ON

------ return two columns that the price bigger than average price ------
-- ********** Begin ********** --

SELECT prod_name, prod_price
FROM Products 
WHERE prod_price > 
(SELECT AVG(prod_price) FROM Products);

-- ********** End ********** --

GO

我的解题思路:

首先,我会按照昨天的SQL语句的执行顺序是什么样的?

的顺序去写,1. FROM 和 JOINs 2. WHERE 3. GROUP BY 4. HAVING 5. SELECT 6. DISTINCT 7. ORDER BY 8. LIMIT / OFFSET
照着这个顺序,你能根据计算机思维去思考怎么过滤和筛选数据
例如这一题,我先写FROM prod_price 再写where条件
where条件再更具要求去写,如根据那个字段去筛选,这一题,是根据字段名 商品价格( prod_price )筛选,然后是运算符,再然后就是嵌套语句,先是算聚合函数再然后是数学函数,(SQL函数介绍)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

段奥娟生日会

段奥娟20岁生日会概念视频,走着走着孩子突然就长大了

猜你喜欢

转载自blog.csdn.net/qq_44745905/article/details/110727504
今日推荐