2

我正在使用 sql 数据库,我有问题。这是关于公共交通的,我有表格“交通事故”和“事故发生时间”列(日期时间)。我需要计算在特定时间发生了多少事故,以了解一天中最危险的部分。我知道如何将小时与日期时间分开,但问题是如何计算和排序。它应该是这样的:

交通事故发生时间

 2011-03-05 07:40:00.000,        
 2011-03-07 01:15:00.000,      
 2011-04-07 19:00:00.000,      
 2011-07-23 11:00:00.000,        
 2011-06-22 07:09:00.000,
 2011-03-08 07:14:00.000,
 2011-02-02 01:26:00.000  

按小时排序事故

7h- 3 accidents,
1h- 2 accidents,
6h- 1 accident,
etc…

我的英语不是很完美,但我希望我足够清楚 :P 谢谢你,Urosh

4

1 回答 1

2

尝试这样的事情:

WITH T as
(
 SELECT '2011-03-05 07:40:00.000' Col1 UNION ALL        
 SELECT '2011-03-07 01:15:00.000' Col1 UNION ALL  
 SELECT '2011-04-07 19:00:00.000' Col1 UNION ALL        
 SELECT '2011-07-23 11:00:00.000' Col1 UNION ALL          
 SELECT '2011-06-22 07:09:00.000' Col1 UNION ALL  
 SELECT '2011-03-08 07:14:00.000' Col1 UNION ALL  
 SELECT '2011-02-02 01:26:00.000' 
) 

假设 T 是您的表,Col1 是您的日期列。

SELECT DATEPART(hour,Col1) as Hour,COUNT(DATEPART(hour,Col1)) as Accidents FROM T
GROUP BY DATEPART(hour,Col1)
ORDER BY DATEPART(hour,Col1)

结果:

Hour Accidents
1    2
7    3
11   1
19   1

最好的祝福

于 2012-05-30T03:02:46.153 回答