【SQL必知必會】第9課 彙總資料
阿新 • • 發佈:2022-03-25
9.1 聚類函式
9.1.1 AVG()函式
計算產品的平均價格
1 -- 計算產品的平均價格 2 SELECT AVG(prod_price) AS avg_price 3 FROM Products;
AVG()也可以用來確定特定列或行的平均值。
-- AVG()也可以用來確定特定列或行的平均值。 SELECT AVG(prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01'; /* 注意:只用於單個列 AVG()只用來確定特定數值列的平均值且列名必須作為函式引數給出。 為了獲得多個列的平均值必須使用多個AVG()函式。*/
9.1.2 COUNT()函式
兩種方式,有“*” 和 “(某一列)”
“*” , 則統計時會包括NULL
返回顧客的個數
-- 返回顧客的個數 SELECT COUNT(*) AS num_cust FROM Customers;
“(某一列)”,統計時不會包括NULL
-- 返回顧客中有郵箱的個數 SELECT COUNT(cust_email) AS num_cust FROM Customers;
9.1.3 MAX()函式
產品中價格最高
-- 產品中價格最高 SELECT MAX(prod_price) ASmax_price FROM Products; -- NULL值 運算時 不包括在裡面,原因是NULL不是值!
9.1.4 MIN()函式
產品中價格最低
-- 產品中價格最低 SELECT MIN(prod_price) AS min_price FROM Products; -- NULL值 運算時 不包括在裡面,原因是NULL不是值!
9.1.5 SUM()函式
所有物品數量之和
SELECT SUM(quantity) AS items_ordered FROM OrderItems WHERE order_num = 20005; /* 函式SUM(quantity)返回訂單中所有物品數量之和, WHERE子句保證只統計某個物品訂單中的物品。*/
SUM()也可以用來合計,單價 * 數量 = 總價
/* SUM()也可以用來合計,單價 * 數量 = 總價 */ SELECT SUM(item_price*quantity) AS total_price FROM OrderItems WHERE order_num = 20005; /* 提示: 1、在多個列上進行計算:所有聚集函式都可用來執行多個列上的計算。 2、NULL值:SUM()函式忽略列值為NULL的行。 */
9.2 聚集不同值( ALL | DISTINCT )
排除 有多個物品具有相同的較低價格。
-- 排除 有多個物品具有相同的較低價格。 SELECT AVG(DISTINCT prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01';
9.3 組合聚集函式
返回4個值Products表中物品的數目(產品價格的最高值、最低值以及平均值)。
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; --單條SELECT語句執行了4個聚集計算, --返回4個值Products表中物品的數目(產品價格的最高值、最低值以及平均值)。