-3

次の形式のテーブルがあります。

id  |  Date A
----------------
1   |  05/02/12
1   |  05/05/12
1   |  05/08/12
3   |  05/01/12
3   |  05/05/12
3   |  05/06/12

ここで、各 ID の最新 (最大) の日付を取得し、ID でグループ化したいと思います。したがって、私のSQL出力は次のようになります。

id  |  Date A
----------------
1   |  05/08/12
3   |  05/06/12

日付は必ずしも順不同です。誰かがこれを行う方法についてのヒントを教えてもらえますか?

ありがとう!

4

2 に答える 2

4
select id, max([Date A]) as 'MaxDate'
from table
group by id
于 2013-05-14T13:41:37.143 に答える
1

これにはウィンドウ関数を使用します。

SELECT DISTINCT id, MAX([Date A]) OVER (PARTITION BY id) AS 'Date A'
  FROM table

ウィンドウ関数の良いところは、出力結果を取得するために、関数内で必要のないものを GROUP BY する必要がないことです。彼らはまた本当に速いです。

BOL は次のとおりです: http://msdn.microsoft.com/en-us/library/ms189461.aspx ウィンドウ関数に関する詳細情報: http://en.wikipedia.org/wiki/Select_(SQL)#ウィンドウ関数

于 2013-05-14T13:48:05.000 に答える