查找符合MySQL表格标准的每年第一行

时间:2011-08-06 18:04:30

标签: mysql

我有一个跟踪体育统计数据的MySQL数据库。我正在尝试通过每个赛季的第一场主场比赛进行查询。数据库的设置与此类似:

TABLE 'STATS'
GAMENUMBER | YEAR | MONTH | DAY | OPPONENT | HOMEAWAY | ...
1          | 2010 | 9     | 7   | Yale     | A        | ...
2          | 2010 | 9     | 14  | Rice     | H        | ...
3          | 2010 | 9     | 21  | NCSU     | H        | ...
1          | 2009 | 9     | 7   | Ohio     | A        | ...
2          | 2009 | 9     | 14  | SUNY     | A        | ...
3          | 2009 | 9     | 21  | Penn     | A        | ...
1          | 2008 | 9     | 7   | Iowa     | H        | ...
...

我认为我需要以某种方式使用YEAR和GAMENUMBER列来查找每年第一个主场比赛的单场比赛。但我无法正确查询!如果它有帮助,将在网站上使用PHP调用此表来显示数据。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

一样查询
SELECT year, min(GAMENUMBER) FROM stats WHERE(HOMEAWAY = 'H') GROUP BY year

每年会让你第一次回家,但是为了获得剩下的部分,我会尝试

SELECT s.*
FROM stats s
  JOIN(SELECT year y, min(GAMENUMBER) gn FROM stats WHERE(HOMEAWAY = 'H')GROUP BY year) q
    ON(s.year = q.year)AND(s.GAMENUMBER = q.gn)

答案 1 :(得分:0)

我认为这样做:

SELECT MIN(s.gamenumber),s.year,s.month,s.day,s.homeaway
FROM stats s
WHERE s.homeaway='H'
GROUP BY s.year

让我知道它是否有效,因为我现在无法测试......