假设我有一个包含2个字段的简单表:日期,距离 我想选择每年的MAX(距离) 所以这很容易做到:
SELECT DatePart("yyyy",[FixedDate]) AS y, Max(Distance) as d
FROM mytable
GROUP BY DatePart("yyyy",[FixedDate]);
但是我还希望我的输出显示我找到MAX(距离)的第一个日期 - 也就是说,列出实际的FixedDate字段。
所以我想:
2000, 10, 10/12/2000
2001, 19, 3/8/2001
....
在任何给定的组(任何给定年份)中可能有多个日期发生MAX(距离),但我只想选择第一个发生的日期。
我似乎无法使GROUP BY正常工作!
感谢您对此有任何帮助!
答案 0 :(得分:1)
试试这个:
select
fixedyr,
max_distance,
min(fixedDate) as min_fixedDate
from
mytable m inner join
(
SELECT
DatePart("yyyy",[FixedDate]) AS fixedYr,
Max(Distance) as max_distance
FROM
mytable
GROUP BY
DatePart("yyyy",[FixedDate])
) mx on
DatePart("yyyy",m.fixeddate) = mx.fixedYr and
m.distance = mx.max_distance
group by
fixedyr,
max_distance