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

Oracle 快速找出欄位重複值:GROUP BY + COUNT 實戰

     編輯:Oracle 資料庫基礎

資料品質檢核時,最常見的需求就是「這個欄位有沒有重複值?」Oracle 只要一行 GROUP BY 配合 COUNT(*) 即可秒出結果,並能統計每個值重複幾次。

核心查詢語法

SELECT 欄位A, COUNT(*)
FROM 表名
GROUP BY 欄位A;

結果解讀

  • COUNT(*) = 1:該值唯一,無重複。
  • COUNT(*) > 1:該值重複,數字即為重複筆數。

實戰範例

假設欄位 A 的資料為 9, 7, 1, 2, 3, 9, 7, 1,查詢結果如下圖:

GROUP BY COUNT 結果範例

圖中可見 9、7、1 各出現 2 次,2、3 各出現 1 次。

進階:只看重複值

若只想列出有重複的值,加上 HAVING 子句:

SELECT 欄位A, COUNT(*) AS dup_cnt
FROM 表名
GROUP BY 欄位A
HAVING COUNT(*) > 1
ORDER BY dup_cnt DESC;

效能提示

  • 若表極大,確保欄位 A 上有索引,GROUP BY 才能走 Index Full Scan 避免 Full Table Scan。
  • 僅需檢查是否存在重複(不需統計筆數)時,可用 EXISTS 寫法搭配 ROWNUM = 1 提早終止掃描。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved