【发布时间】:2021-03-15 11:41:42
【问题描述】:
我有 4 行的表
id season_id market elements 我想为每个相同的 season_id 选择具有最大结果的市场,如果最大结果相同,则仅基于元素高于 9 的元素来选择最大值。
id | season_id | market | result | elements
1 | 20 | fh | 75 | 20
2 | 20 | fh | 75 | 22
3 | 20 | SH | 81 | 18
4 | 20 | SH | 75 | 20
5 | 21 | fh | 90 | 14
6 | 21 | fh | 86 | 16
7 | 21 | SH | 90 | 18
8 | 21 | SH | 91 | 2
我想得到
id | season_id | market | result | elements
2 | 20 | fh | 75 | 22
3 | 20 | SH | 81 | 18
5 | 21 | fh | 90 | 14
7 | 21 | SH | 90 | 18
我试过了
SELECT a.* FROM results a INNER JOIN (SELECT id, market, MAX(result) as perc FROM
results where elements>9 group by market ) group ON a.market = group.market and
a.result = group.perc group by market
但它并没有选择所有市场,我不确定如何按元素数量向其中添加选择
【问题讨论】:
-
我不明白对元素的限制> 9.如果没有怎么办?
-
然后跳过这条记录
-
是否有多个记录(这里指 3 及以上)具有相同的 season_id 和 market 还是总是 1 或 2?
-
market 和 season_id 上有多个记录,但每个季节 id 的市场编号和名称都相同
标签: php mysql sql greatest-n-per-group