【发布时间】:2019-03-04 19:02:07
【问题描述】:
我正在尝试返回满足某些条件的年份列表,但我无法使用 MAX 函数并让它与我的其余逻辑一起工作。
对于以下两个表:
coach
coach | team | wins | year
------+------+------+------
nk01 | a | 4 | 2000
vx92 | b | 1 | 2000
nk01 | b | 5 | 2003
vx92 | a | 2 | 2003
team
team | worldcupwin | year
-----+-------------+------
a | Y | 2000
b | N | 2000
a | Y | 2003
b | N | 2003
我想得到以下输出:
years
-----
2000
打印的年份是当年获胜次数最多的教练组也赢得了世界杯。
我决定使用 MAX 函数,但很快就遇到了不知道如何使用它的问题,只能查找某一年的最大值。这是我到目前为止所得到的:
SELECT y.year
FROM (SELECT c.year, MAX(c.wins), c.team
FROM coach AS c
WHERE c.year >= 1999
GROUP BY c.year, c.team) AS y, teams AS t
WHERE y.year = t.year AND t.worldcupwin = 'Y' AND y.team = t.team;
此查询为我输出 1999 年之后的所有年份,而不仅仅是那些获胜最多的教练也赢得了世界杯的年份。 (使用 postgresql)
感谢任何帮助!
【问题讨论】:
标签: sql database postgresql max