mystictuff:
私は、次のコードを試してみましたが、私はただ、最大値で代わりに1行のすべての名前と合計値との完全なテーブルを取得します:
SELECT stageName, max(total_salary)
FROM (
SELECT c.*, sum(p.dailySalary) as total_salary
from contender as c
left join participant as p
on (p.contender = c.idContender)
group by c.idContender ) b
group by stageName;
output:
Yellow Jesters 205
TikTok 3073
Teabags 947
Bobbleheads 11840
Reddit 1486
私はちょうど必要があります。ボブルヘッド人形11840
PS:DESCを使用せずに解決策を提案し、制限してください
ビルKarwin:
ここにはORDER BY、LIMIT、ウィンドウ関数、ビュー、またはCTEを使用していない、MySQLの5.xの任意のバージョンで動作するはずソリューションです。
SELECT a.stagename, a.total_salary
FROM (
SELECT c.*, sum(p.dailySalary) as total_salary
from contender as c
left join participant as p
on (p.contender = c.idContender)
group by c.idContender ) AS a
LEFT OUTER JOIN (
SELECT c.*, sum(p.dailySalary) as total_salary
from contender as c
left join participant as p
on (p.contender = c.idContender)
group by c.idContender ) AS b
ON a.total_salary < b.total_salary
WHERE b.total_salary IS NULL;
MySQLの5.7.27でテスト。
出力:
+-------------+--------------+
| stagename | total_salary |
+-------------+--------------+
| Bobbleheads | 11840 |
+-------------+--------------+