请帮助解决此问题。它应该只返回少于3000条记录,但它返回超过4M。它需要显示所有重复的记录...所有信息都在同一个表VENDFIl上,所以我使用了自联接,但它似乎是循环... 查询:
SELECT A.FEDTID, B.VENDOR, C.NPI_NUMBER
FROM VENDFIL A, VENDFIL B, VENDFIL C
GROUP BY A.FEDTID, B.VENDOR
...谢谢
答案 0 :(得分:0)
为什么你需要自我加入?使用having子句
SELECT fedtid, vendor, npi_number, COUNT(*)
FROM vendfil
GROUP BY fedtid, vendor, npi_number
HAVING COUNT(*) > 1
答案 1 :(得分:0)
你正在制造三重奏cross join
。
如果你想自己加入一个表,你需要定义条件。
如果要显示重复记录,则不需要加入
SELECT fedtid, vendor, npi_number, COUNT(1) cnt
FROM vendfil
GROUP BY fedtid, vendor, npi_number
HAVING COUNT(1) > 1
用于显示重复记录,并在重复使用此查询时重复这些记录
Select * from vendfil
where Exists(
Select * from (SELECT fedtid, vendor, npi_number, COUNT(1) cnt
FROM vendfil
GROUP BY fedtid, vendor, npi_number
HAVING COUNT(1) > 1) t
where t.fedtid = vendfil.fedtid and t.vendor = vendfil.vendor and t.npi_number = vendfil.npi_number
)