在这里和其他论坛上搜索了很多其他主题后,我似乎找不到解决我的问题的方法。
我想要实现的是选择每个商店“花费的钱”最高的帐户。
这是我到目前为止所得到的:
SELECT MAX(s.Amount) MaxOfAmount
, s.shopID
FROM
( SELECT SUM(OrderTotal) Amount
, shopID
, accountID
FROM Transactions
GROUP
BY shopID
, accountID
) s
GROUP
BY s.shopID
这为我提供了每个 shopID 帐户花费的正确最多金额,但我看不到与其关联的 accountID。我尝试将 Selection.accountID 添加到第一个选择中。但随后我还必须将 Selection.accountID 添加到“GROUP BY”子句中,这会产生与“FROM”查询相同的记录集。
我在这里完全不知所措,所以非常感谢您的帮助。
最佳答案
请尝试一下,这应该可行。
SELECT selection1.shopID,accountID,Amount
FROM (SELECT SUM(OrderTotal) as Amount, shopID, accountID FROM Transactions GROUP BY shopID, accountID ) AS selection1
INNER JOIN
(
SELECT Max(selection2.Amount) AS MaxOfAmount, selection2.shopID
FROM (SELECT SUM(OrderTotal) as Amount, shopID, accountID FROM Transactions GROUP BY shopID, accountID ) AS selection2
GROUP BY selection2.shopID
)
MAX_AMOUNT ON
MAX_AMOUNT.MaxOfAmount=selection1.Amount AND
MAX_AMOUNT.shopID=selection1.shopID
关于mysql - 使用 MAX() 和 SUM() 聚合的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20494938/