sql查询最大累计

sql query maximum cummulative

我有 table 个 mysql

+-------------------------+
| ID  Name Month  Salary  |
+-------------------------+
| 1  Joe   4      300     |
| 2  Kim   3     100      |
| 3  Moko  2     150      |
| 4   Loli  5     80      |
| 5  Tom   3    400       |
+-------------------------+

我如何根据月份和收入最高的人获得工资总数

例子

Joe = 4*300 = 1200
Kim = 300
Moko = 300
Loli = 400
Tom = 1200

输出将是 : 1200, 2

1200 是最高薪水,2 是挣钱的人,即乔和汤姆

像下面这样使用子查询

    select max(salary),count(*) from (select name, sum(Month*Salary) as salary
    from data    group by name
    ) b where b.salary= 

   (select max(salary) from
   (select sum(Month*Salary) as salary
    from data    group by name
    )b
    )

Demo link

您可以在子查询中计算所有 total 薪水,然后计算每个 total 值的出现次数,按 total 以 [=15= 降序排列] 限制为最高值:

SELECT total, COUNT(*) AS num
FROM (
  SELECT Month * Salary AS total
  FROM data
) t
GROUP BY total
ORDER BY total DESC
LIMIT 1

输出:

total   num
1200    2

Demo on SQLFiddle

SELECT Month*Salary, COUNT(*)
FROM A WHERE Month*Salary = (SELECT MAX(Month*Salary)
                             FROM A)

第二个查询将为您提供最高总薪水,然后您可以过滤 table A 中的条目,月*薪水等于该金额。