-5

同じIDの同じテーブルから2つの重複する日付行から1行を取得するにはどうすればよいですか? 私は50000件以上のレコードを持っています。

以下のサンプルデータがあります。

ID    start_dt    end_dt       division
1212  04/01/2006  03/01/2007   second
1212  05/01/2009  01/01/2010   second
1212  04/01/2006  03/01/2008   second   --- This should be selected as longest timeframe
1212  09/03/2007  03/01/2008   third
1213  05/03/2005  04/11/2009   second
1214  07/03/2007  03/01/2008   third

そして、次のように取得する必要があるデータ。

ID    start_dt    end_dt       division
1212  04/01/2006  03/01/2008   second
1212  05/01/2009  01/01/2010   second
1213  05/03/2005  04/11/2009   second
1214  07/03/2007  03/01/2008   third

ありがとうございました。ラム

4

1 に答える 1

0

問題を理解したので、2 つの日付を差し引いて時間枠の違いを判断してください。

SELECT S.Id, S.Start_dt, S.End_dt, S.Division
FROM Sample S
 JOIN (
   SELECT S.Id, Max(S.end_dt-S.start_dt) as timeframe
FROM Sample S
GROUP BY S.Id ) S2 ON S.Id = S2.Id 
    AND S.end_dt-S.start_dt = s2.timeframe

これがフィドルです。

幸運を。

于 2013-01-25T15:40:13.390 に答える