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
)
您可以在子查询中计算所有 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
SELECT Month*Salary, COUNT(*)
FROM A WHERE Month*Salary = (SELECT MAX(Month*Salary)
FROM A)
第二个查询将为您提供最高总薪水,然后您可以过滤 table A 中的条目,月*薪水等于该金额。
我有 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
)
您可以在子查询中计算所有 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
SELECT Month*Salary, COUNT(*)
FROM A WHERE Month*Salary = (SELECT MAX(Month*Salary)
FROM A)
第二个查询将为您提供最高总薪水,然后您可以过滤 table A 中的条目,月*薪水等于该金额。