(1)任务描述
本关任务:使用函数 AVG() 计算数据表中指定字段的平均值。
(2)相关知识
为了完成本关任务,你需要掌握:1. AVG() 函数的含义,2. AVG() 函数的用法。
(3)返回某一字段的平均值
AVG() 函数通过计算某字段(列)内容(行)的个数和它们的数值之和来返回某一字段的平均值。
语法规则为:
SELECT AVG(column_name)
FROM table_name
举个例子 我们想从表 Customers 中,检索到所有消费者消费金额的平均值。 表 Customers 的内容如下表所示:
输入:
SELECT AVG(cost) as avg_cost
FROM Customers
输出:
avg_cost | |
---|---|
1 | 2415.26 |
在这个例子里, SELECT 语句只负责返回一个值,这个值就是 avg_cost 。 avg_cost 是我们为检索数据起的“小名”,它包含着所有消费者消费金额的平均值。
Tips: 如果你没有为你的检索结果起个“小名”, 那它就只能是供你观赏的一个值,在接下来的操作中,你将不能继续使用它。所以为了以防万一,好的习惯是为自己每一个检索结果,都起一个有意义的名字,好看又好记。
(4)返回某一字段指定内容的平均值
AVG() 函数不仅能计算某字段(列)的平均值,如果你愿意,还能为 SELECT 语句增加条件,以此来计算某些特定条件下某字段的平均值。
举个例子 我们想从表 Customers 中,检索到所有叫 Alice 的消费者消费金额的平均值。表 Customers 的内容与上例一致。
输入:
SELECT AVG(cost) as avg_alice_cost
FROM Customers
WHERE cust_name LIKE 'Alice%'
与上例不同的是,我们在这里加入了条件筛选语句 WHERE。WHERE 语句帮我们过滤了所有不叫 Alice 的人,因此,我们所查到的消费金额平均值是所有叫 Alice 的人的消费平均值。
(5)编程要求
我们已经为你建好了数据库与数据表,并添加了相应的数据内容。你只需补全右侧代码片段中 Begin-End 区间的代码,返回表 Products 中商品价格( prod_price )大于平均值的商品的 prod_name 和 prod_price。
其中表 Products 的内容如下表所示:
提示:
-
与本关例子不同的是,在练习中需要你们返回的是 prod_name 和 prod_price,而不是平均值;
-
与本关例子不同的是,在练习中需要你们设置的过滤条件是平均值;
-
SELECT 语句是可以嵌套使用的,比如有如下形式的代码.
SELECT column_A
FROM table
WHERE column_A < (SELECT column_B FROM table)
测试说明
测试过程:
-
本关涉及到的测试文件是 step1_test.sh,平台将运行用户补全的 step1.sql 文件,得到数据;
-
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
开始你的任务吧,祝你成功!
实验代码