1

我有返回以下数据的查询:

Number  WeekNumber  Date
1111    23          9/11/12 11:01 AM
1111    23          9/11/12 11:58 AM
2222    24          9/17/12 10:14 AM
2222    24          9/18/12 9:52 AM
2222    24          9/19/12 9:46 AM
2222    24          9/20/12 9:42 AM

但是我想要的是获得每周的最新日期,结果应该是:

Number  WeekNumber  Date
1111    23          9/11/12 11:58 AM
2222    24          9/20/12 9:42 AM

我可以用什么来获得这个。我曾尝试使用 MAX(DATE) 但我得到的是最新日期,而不是每周的最新日期。我也尝试过 distinct ,但我无法使其与 WHERE 子句一起使用。

非常感谢。

4

2 回答 2

5
SELECT Number, WeekNumber, MAX([Date])
FROM TableName
GROUP BY Number, WeekNumber

您已经接近 MAX(Date),但是您需要按其他详细信息分组。

于 2012-09-21T09:18:10.777 回答
1

Number您说和之间明显的 1:1 关系WeekNumber是您发布的数据的人工制品,并不真正适用于您的实际数据。如果是这种情况,简单的 GROUP BY 不会提供您的答案。

如果您使用的是一种使用分析函数的 RDBMS,这将起作用:

select distinct number
       , weeknumber
       , max(date) over (partition by weeknumber) as weekly_max_date
from yourtable;

如果您没有分析,则需要使用相关的子查询:

select distinct t.number
       , t.weeknumber
       , q.weekly_max_date
from yourtable t
     join ( select weeknumber, max(date) as weekly_max_date
            from yourtable
            group by weeknumber) q
     on (q.weeknumber = t.weeknumber)
于 2012-09-21T09:20:28.327 回答