0

我有一张如下表。

   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 |
4

2 回答 2

0

如果您不关心缺少 0 行计数,您可以将 group by 与日期时间函数一起使用,但如果您担心,请使用 Jeff 在本论坛帖子的第二页中提到的计数表示例:http://www。 sqlservercentral.com/Forums/Topic288581-8-1.aspx 这篇文章中的两个例子,但要注意是半小时,应该很容易转换为小时。

于 2013-11-12T05:50:44.583 回答
0

这就是我要的。

马特·沃森

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

于 2013-11-12T08:30:54.207 回答