我在mysql中有表A
+-------------------------+
| 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,而有薪水的人为Joe和Tom,为
答案 0 :(得分: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
)
答案 1 :(得分:2)
您可以计算子查询中的所有total
工资,然后计算每个total
值的出现次数,按total
降序为LIMIT 1
到限制为最高值:
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
答案 2 :(得分:1)
SELECT Month*Salary, COUNT(*)
FROM A WHERE Month*Salary = (SELECT MAX(Month*Salary)
FROM A)
第二个查询将为您提供最大的薪水总额,然后您可以筛选表A中的月*薪水等于该金额的条目。