简体   繁体   English

SQL查询按日期分组

[英]SQL query for group by date

SQL table in the below data format 以下数据格式的SQL表

Datetime           Type    Id  
6/18/2018 8:00:00   A      1  
6/18/2018 9:00:00   A      2  
6/18/2018 10:00:00  A      3  
6/18/2018 11:00:00  B      4
6/18/2018 12:30:00  B      5  
6/18/2018 13:15:00  A      6  
6/18/2018 14:00:00  A      7  

Result table needed 需要结果表

Type Startdate          Enddate            Count Changeovertime

A    6/18/2018 8:00:00  6/18/2018 10:00:00   3   NA  
B    6/18/2018 11:00:00  6/18/2018 12:30:00  2   1:00:00       
A    6/18/2018 13:15:00  6/18/2018 14:00:00  2   0:45:00  

Can you help me to get the query for the result? 您能帮我查询结果吗?

I am using sql server 2008 express edition. 我正在使用SQL Server 2008 Express Edition。

Regards Dilipan. 关于Dilipan。

You can use difference of row_number() : 您可以使用row_number()区别:

select Type, min(datetime) as startdate, max(datetime) as enddate, count(*) as count
from (select *, row_number() over (partition by type order by id) seq
      from table
     ) t
group by Type, (Id-Seq);

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

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