SQL Server 2000拉取计数按时间分组

时间:2013-11-12 05:40:20

标签: sql-server datetime sql-server-2000

我有一张如下表格。

   Date           |      Time    |      connect    |

2013-08-23 00:00:00.000 | 05.26.13  | 1  |

2013-08-23 00:00:00.000 | 05.32.11  | 1  |

2013-08-23 00:00:00.000 | 05.26.13  | 1  |

2013-08-23 00:00:00.000 | 06.02.52  | 1  |

2013-08-23 00:00:00.000 | 06.41.09  | 1  |

2013-08-23 00:00:00.000 | 06.43.12  | 1  |

2013-08-23 00:00:00.000 | 06.52.09  | 1  |

2013-08-23 00:00:00.000 | 06.57.39  | 1  |

2013-10-21 00:00:00.000 | 03.58.35  | 1  |

2013-10-21 00:00:00.000 | 04.02.18  | 1  |

2013-10-21 00:00:00.000 | 04.12.02  | 1  |

2013-10-21 00:00:00.000 | 04.41.36  | 1  |

2013-10-21 00:00:00.000 | 11.12.27  | 1  |

2013-10-22 00:00:00.000 | 11.58.35  | 1  |

我希望得到每小时的连接数,按日期分组。 计数在1:00到1:59,2:00到2:59之间,依此类推。以下是我需要的输出模型。

Date   | Count(between 4.00.00 to 4.59.59)  | Count(between 5.00.00 to 5.59.59) | Count(between 6.00.00 to 6.59.59) |Count(between 11.00.00 to 11.59.59) |

2013-08-23 00:00:00.000 | 0 | 3 | 5 | 0 |

2013-10-21 00:00:00.000 | 3 | 1 | 0 | 1 |

2013-10-22 00:00:00.000 | 0 | 0 | 0 | 1 |

2 个答案:

答案 0 :(得分:0)

如果你不关心缺少0行计数,你可以使用group by和日期时间函数,但如果你担心,请使用tally表示例Jeff在本论坛帖子的第2页中提及:{{3这篇文章中的两个例子,但它注意到它是半小时,应该很容易转换为小时。

答案 1 :(得分:0)

这就是我想要的。

由Matt Watson

SELECT [Hourly],COUNT(*)as [Count] FROM(SELECT dateadd(hh,datediff(hh,'20010101',[date_created]),'20010101')as [Hourly] FROM table)idat GROUP BY [每小时]