首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle COUNT(*) 函數深度解析:分組統計與整表統計的差異

     編輯:Oracle 資料庫基礎

基本用法

COUNT(*) 是 Oracle 中最常用的彙總函數,用於統計資料列數。其行為會因是否搭配 GROUP BY 而有所不同。

1. 不加 GROUP BY:統計整張表的列數

SELECT COUNT(*) FROM vincent_sms t;

回傳單一列,內容為該表的總記錄筆數。

2. 加上 GROUP BY:統計各分組的列數

SELECT COUNT(*) FROM vincent_sms t GROUP BY t.fmsgcontent;

此查詢會依 fmsgcontent 欄位分組,並回傳每個分組的記錄筆數,而非分組的個數。

核心結論

COUNT() 函數的統計對象永遠是「組」的記錄筆數:

  • 若無 GROUP BY,整張表視為一個組,統計結果為全表列數。
  • 若有 GROUP BY,則依分組欄位切分成多個組,分別統計各組列數。

許多初學者容易誤以為 GROUP BY 後的 COUNT(*) 會回傳分組數量,實際上它回傳的是「每組有多少筆資料」。理解這一點對於撰寫正確的統計查詢至關重要。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved