需找出資料表中某欄位 (或多欄位組合) 出現超過一次的記錄,標準做法是 GROUP BY 配合 HAVING COUNT(*) > 1。
SELECT 欄位1, 欄位2, COUNT(*) AS 重複次數
FROM 資料表
GROUP BY 欄位1, 欄位2
HAVING COUNT(*) > 1;
資料表 A 欄位:編號, 經度, 緯度, 位置, 名稱, 時間。欲找出 經度+緯度 組合重複的記錄:
SELECT DISTINCT (經度 + 緯度) AS 統一編號, COUNT(*) AS RecordCount
FROM A
GROUP BY (經度 + 緯度)
HAVING COUNT(*) > 1;
-- 使用 CTE 或子查詢
WITH DupKeys AS (
SELECT 經度, 緯度
FROM A
GROUP BY 經度, 緯度
HAVING COUNT(*) > 1
)
SELECT A.*
FROM A
JOIN DupKeys DK ON A.經度 = DK.經度 AND A.緯度 = DK.緯度
ORDER BY A.經度, A.緯度;
GROUP BY。DISTINCT 在外層查詢中可移除(GROUP BY 已保證唯一),但保留亦無害。