大家好,在此先感谢您的帮助。
我在访问SQL查询时遇到麻烦。
我有 Database
我需要以下输出(仅显示和列出商店号和PaidMoney,其中,Payd money是相同金额,仅2倍或更多倍) desired output
我已经有2个查询可以解决该问题,但是每个查询只能解决我所需答案的50%,第一个查询列出所有结果,不仅重复项,第二个查询告诉我如何有很多重复项,但是没有列出并向我显示重复项。
首次查询
SELECT StoreNumber, PaidMoney
FROM Stores
第二个查询
SELECT StoreNumber, PaidMoney, COUNT(*)
FROM Stores
GROUP BY StoreNumber, PaidMoney
HAVING COUNT(*) > 1
感谢大家的时间和帮助!
答案 0 :(得分:0)
您可以将2个查询连接在一起,并且只能从第一个查询中“选择”列。第二个查询将仅过滤掉第一个查询中仅出现一次的行。第一个查询中出现多次的行应与第一个查询中出现的次数相同。
SELECT q1.StoreNumber, q1.PaidMoney
FROM (SELECT StoreNumber, PaidMoney
FROM Stores) q1
INNER JOIN (SELECT StoreNumber, PaidMoney, COUNT(*) ct2
FROM Stores
GROUP BY StoreNumber, PaidMoney
HAVING COUNT(*) > 1) q2
ON q1.StoreNumber = q2.StoreNumber
AND q1.PaidMoney = q2.PaidMoney