【发布时间】:2010-01-08 08:05:27
【问题描述】:
我有一个 MS SQL Server 表,它记录了我们工厂的警报事件,每个警报有一行,还有一个日期时间列来捕获警报发生的时间。
我们以 12 小时轮班运行我们的工厂(早上 6 点到下午 6 点,下午 6 点到早上 6 点),我需要弄清楚每个班次我们收到了多少警报。如何对结果进行分组以获得该结果?
原始表格如下所示:
DateTime Alarm Name
2010-01-05 14:32:22 Overpressure
2010-01-05 21:32:59 Underspeed
2010-01-06 05:58:13 Underspeed
2010-01-06 06:02:46 Machine Current Fault
我们需要像这样对结果进行分组:
Date Shift Count
2010-01-05 Day 1
2010-01-05 Night 2
2010-01-06 Day 1
请注意,如果警报发生在 1 月 5 日下午 6 点和 1 月 6 日早上 6 点之间,则从 1 月 5 日开始,它们都会被计为夜班。
有什么建议吗?
【问题讨论】:
标签: sql-server datetime group-by