mysql - 一个查询中的 MAX() 和 SUM()

标签 mysql sql sum max

我有这张 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

我需要它返回具有最高 totaldept。 我不能使用 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
    )

sqlfiddle demo

关于mysql - 一个查询中的 MAX() 和 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380001/

相关文章:

mysql - 非唯一键查找和索引范围扫描有什么区别?

C# Datetime 到 ODBC Datetime 转换错误

sql - 如何比较两个表并返回与 HIVE 不同的行

mysql - 使用Model建立表之间的内连接

mysql - 加入一对多与多个where

python - 对除一个轴以外的所有轴求和

sql - 仅在 PostgreSQL 中按月分组查询?

java - 用户输入的总分、平均分、最低分和最高分(条件控制结构)

mysql - on 子句中的未知列 - 从 SQL 转换为 HQL 的查询中

sql - SQL VIEW 应该总是在 1NF 中吗?