需要列出count(*)访问中包含的行

时间:2019-07-12 02:34:43

标签: sql ms-access aggregate

大家好,在此先感谢您的帮助。

我在访问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

感谢大家的时间和帮助!

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