循环查询查询返回比需要更多的记录
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
)
请帮忙解答一下。它应该只有 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
)