我有这张 table
dept | amount | price
1 | 2 | 20
3 | 2 | 50
4 | 3 | 10
2 | 5 | 20
1 | 1 | 15
4 | 1 | 30
4 | 6 | 5
2 | 7 | 7
1 | 1 | 24
2 | 5 | 12
dept 是部门编号 amount 是产品的销售量。 price就是产品的价格是多少
我怎样才能找到从销售他们的产品中获得最多收入的部门。
我有这个:
SELECT dept, SUM( amount * price ) AS total
FROM table
GROUP BY dept
我需要它返回具有最高 total
的 dept
。
我不能使用 MAX( SUM( amount * price ) ),那么我该怎么做呢?
哦对了。这是一项学校作业,我不能使用 LIMIT 或 ORDER BY
最佳答案
在不使用 LIMIT 的情况下,您可以尝试使用 HAVING:
SELECT dept,SUM(amount * price) AS total
FROM tab1
GROUP BY dept
HAVING SUM(amount * price) = (
SELECT MAX(total)
FROM (
SELECT SUM(amount * price) AS total
FROM tab1
GROUP BY dept
) a
)
关于mysql - 一个查询中的 MAX() 和 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380001/