Oracle學習日誌-6(聚合查詢)

聚合函數

聚合函數能夠對數據進行某種操做或者計算。好比幾個經常使用的函數:
COUNT:計算表中行數。
SUM:計算表中數據列中數據的合計值。
AVG:計算表中數據列中數據的平均值。
MAX:求出表中任意列中數據的最大值。
MIN:求出表中任意列中數據的最小值。
下面用這個幾個函數對如下表進行操做。
sql


  • COUNT:計算表中行數。
SELECT COUNT(*) 
FROM Product;


記錄爲NULL的行不記入行數,如進價這一列,有兩個NULL。若是用COUNT計算行數,就會獲得6。函數

SELECT COUNT(purchase_price) 
FROM Product;


可是若是一個表只有一列,記錄了三行記錄,這三條記錄都爲NULL。若是用COUNT()求行數,會獲得3.若是用COUNT<列名>求行數,會獲得0.由於COUNT()會獲得包含NULL的數據,COUNT<列名>會獲得NULL之外的數據。而且只有COUNT函數能夠用*做爲參數。3d


  • SUM:計算表中數據列中數據的合計值。
    好比計算進價的合計值。
SELECT SUM(purchase_price) 
FROM Product;


注意進價這一列有兩個NULL的數據。以前提到過四則運算中,若是包含NULL,那麼結果也是NULL。可是SUM函數不一樣,SUM函數會在運算前就將NULL排除在外。code


  • AVG:計算表中數據列中數據的平均值。
    好比計算進價的平均值。
SELECT AVG(purchase_price) 
FROM Product;


和SUM同樣,AVG會在計算前將NULL排除,因此計算過程是(500+320+2800+2800+500+790)/6。blog


  • MAX:求出表中任意列中數據的最大值,MIN:求出表中任意列中數據的最小值。
    使用方法和SUM,AVG同樣。好比求進價的最小值和售價的最大值
SELECT MIN(purchase_price) ,MAX(sale_price)
FROM Product;

相關文章
相關標籤/搜索