【问题标题】:SQL server 2000 pulling count grouped by timeSQL Server 2000 拉取计数按时间分组
【发布时间】:2013-11-24 03:55:12
【问题描述】:

我有一张如下表。

   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 |

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这就是我想要的。

      马特·沃森

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        • 2011-06-12
        • 2012-01-25
        • 2016-04-15
        相关资源
        最近更新 更多