循环查询查询返回比需要更多的记录

looping query query returning more records than needed

请帮忙解答一下。它应该只有 return 少于 3000 条记录,但它 return 超过 4M。它需要显示所有重复记录...所有信息都在同一个 table VENDFIl 上,所以我使用了自连接但它似乎在循环... 查询:

SELECT A.FEDTID, B.VENDOR, C.NPI_NUMBER
FROM VENDFIL A, VENDFIL B, VENDFIL C
GROUP BY A.FEDTID, B.VENDOR

谢谢...

为什么需要自连接?使用 having 子句

  SELECT fedtid, vendor, npi_number, COUNT(*)
    FROM vendfil
GROUP BY fedtid, vendor, npi_number
  HAVING COUNT(*) > 1

您正在制作三倍 cross join。 如果你想自己加入一个 table 你需要定义条件。

如果您想显示重复记录,则不需要连接

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
)