简体   繁体   English

减去行之间的SQL日期时间

[英]subtract date time in sql between row

I have a list of table which contains column of program, date, group. 我有一个表列表,其中包含程序,日期,组的列。 I want to find subtraction of date that under same group. 我想找到同一组下的日期相减。 for example, my table is: 例如,我的表是:


SELECT maxList.program, (maxlist.DATE - minlist.DATE) RUNDATE, maxList 
GROUP FROM ( SELECT a.* FROM schedule a inner join ( SELECT program,Max(DATE) 
FROM schedule GROUP BY program ) b 
ON a.program = b.program )maxList 
inner join ( SELECT a.* FROM schedule a 
inner join ( SELECT program,Min(DATE) FROM schedule 
GROUP BY GROUP ) b 
ON a.program = b.program ) minList 
ON maxList.program = minList. program 


**program  | date                | group**
    a     | 04.12.2013 19:16:08 |   1
    b     | 27.12.2013 00:47:41 |   1
    c     | 30.12.2013 00:47:41 |   1
    d     | 26.12.2013 14:02:42 |   2  
    e     | 31.12.2013 12:03:42 |   2

What I want is to subtract the latest date under same group to the initial date. 我想要的是将同一组下的最新日期减去初始日期。 for example 30.12.2013....- 04.12.2013, is there any coding that can be use to apply the subtraction in sql? 例如30.12.2013 ....- 04.12.2013,是否可以使用任何编码在sql中应用减法?

Just aggregate the MAX and the MIN : 只需汇总MAXMIN

SELECT   group, 
         MIN(date) || '..' || MAX(date) AS date_range, 
         MAX(date) - MIN(date) AS days_between
FROM     mytable
GROUP BY group
SELECT   group**, MAX(date) - MIN(date) as date_diff
FROM     your_table
GROUP BY group**

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM