如何在MySQL中找到名字的生命周期?

时间:2013-05-02 16:33:37

标签: mysql date timespan

我有一个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

1 个答案:

答案 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;