聚集函數(shù)(aggregate function) 運(yùn)行在行組上,計(jì)算和返回單個(gè)值的函數(shù)
AVG
# 計(jì)算供應(yīng)商為1003的所有商品的平均值
SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;
COUNT
COUNT()函數(shù)有兩種使用方式。
- 使用COUNT(*)對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù),不管表列中包含的是空值(NULL)還是非空值。
- 使用 COUNT(column) 對(duì)特定列中具有值的行進(jìn)行計(jì)數(shù), 忽略NULL值。
# 計(jì)算擁有email信息的顧客的數(shù)量
SELECT COUNT(cust_email) AS num_cust
FROM customers;
# 計(jì)算customers表中客戶的總數(shù)
SELECT COUNT(*) AS num_cust
FROM customers;
MAX
# 計(jì)算商品表中最貴的商品價(jià)格
SELECT MAX(prod_price) AS max_price
FROM products;
注意:雖然 MAX() 一般用來(lái)找出最大的數(shù)值或日期值,但MySQL允許將它用來(lái)返回任意列中的最大值,包括返回文本列中的最大值。在用于文本數(shù)據(jù)時(shí),如果數(shù)據(jù)按相應(yīng)的列排序,則MAX()返回最后一行
MIN
# 計(jì)算商品表中最便宜的商品價(jià)格
SELECT MIN(prod_price) AS max_price
FROM products;
注意:MIN() 函數(shù)與 MAX() 函數(shù)類似,MySQL允許將它用來(lái)返回任意列中的最小值,包括返回文本列中的最小值。在用于文本數(shù)據(jù)時(shí),如果數(shù)據(jù)按相應(yīng)的列排序,則MIN()返回最前面的行
SUM
下面舉一個(gè)例子,orderitems表包含訂單中實(shí)際的物品,每個(gè)物品有相應(yīng)的數(shù)量( quantity )。 可如下檢索所訂購(gòu)物品的總數(shù)(所有 quantity值之和)
SELECT SUM(quantity) AS items_ordered
FROM orderitems
WHERE order_num = 20005;
聚合組合函數(shù)
聚合組合函數(shù),實(shí)際上SELECT 語(yǔ)句可根據(jù)需要包含多個(gè)聚集函數(shù)
#
SELECT COUNT(*) AS num_items,
MIN(prod_price) AS min_price
MAX(prod_price) AS max_price
AVG(prod_price) AS avg_price
FROM products;
注意:在指定別名以包含某個(gè)聚集函數(shù)的結(jié)果時(shí),不應(yīng)該使用表中實(shí)際的列名。雖然這樣做并非不合法,但使用唯一的名字(別名)會(huì)使你的SQL更易于理解和使用
本文摘自 :https://www.cnblogs.com/