1. 程式人生 > 資料庫 >SQL Server 高階查詢-AVG()(一)

SQL Server 高階查詢-AVG()(一)

時間煮雨
@

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_cost

avg_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

我的解題思路:

首先,我會按照昨天的

的順序去寫,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 )篩選,然後是運算子,再然後就是巢狀語句,先是算再然後是數學函式,

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

<iframe allowfullscreen="true" data-mediaembed="bilibili" id="7sFUM5Rc-1607178079836" src="https://player.bilibili.com/player.html?aid=800578909"></iframe>

段奧娟20歲生日會概念視訊,走著走著孩子突然就長大了