我有一个sql表,其中包含id在系统中注册的一系列id和日期。一个id可以多次注册。表格如下:
ID Date
3 16/6/2009
4 2/4/2010
7 4/9/2012
3 12/6/2009
7 2/8/20011
3 16/12/2009
etc..
从这样的表格中我想提取具有生命周期的ID(我想减去第一个日期和最后一个日期).Ids可以具有相同的日期,并且可以在不同的日期注册id。
有谁知道我应该使用什么查询来获得所需的结果如下所示?
ID Date(week)
3 2/4/2009-16/6/2009
4 2/4/2010
7 2/8/20011-4/9/2012
答案 0 :(得分:1)
SELECT x.id
, x.start
FROM
( SELECT id
, MIN(DATE) start
FROM my_table
GROUP
BY id
) x
LEFT
JOIN
( SELECT id
, MAX(DATE) end
FROM my_table
GROUP
BY id
) y
ON y.id = x.id
AND y.end > x.start;