mysql - 使用 MAX() 和 SUM() 聚合的 SQL 查询

标签 mysql sql sum max ms-access-2010

在这里和其他论坛上搜索了很多其他主题后,我似乎找不到解决我的问题的方法。

我想要实现的是选择每个商店“花费的钱”最高的帐户。

这是我到目前为止所得到的:

 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/

相关文章:

mysql - 规范在线购物车表

sql - GROUP BY CASE 的问题

c# - 在窗体关闭时关闭 SQL 连接 (C#)

python - 基于 Pandas 数据框中分组的总和?

php - 如何在 PHP 的 while 循环中求和每个用户的总时间

algorithm - 楼层求和算法

php - 更新行而不删除 mysql 中的先前值

php - PDO 不会给出结果

javascript - 使用 laravel 迁移插入数据库时​​,如何附加给定输入的字符串?

sql - 将另一列的自动递增的索引值用作默认值