SQL有多少员工正在工作,按小时分组

时间:2011-12-29 23:50:44

标签: sql

我有一张桌子,一张时间表,有员工办理登机手续和退房时间:

ID    Date     Check-in     Check out
1     1-1-2011 11:00        18:00
2     1-1-2011 11:00        19:00
3     1-1-2011 16:00        18:30
4     1-1-2011 17:00        20:00

现在我想知道有多少员工每半小时工作一次。 结果我想看到:

Hour  Count
11    2
12    2
13    2
14    2
15    2
16    3
17    3
18    2,5
19    1

每个'小时'你必须读作'直到下一个整整一小时',例如11 - > 11:00 - 12:00

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

构建一个名为Hours的附加表,其中包含以下数据:

 h
 00:00
 00:30
 01:00
 ...
 23:30

然后,运行

Select h as 'hour' ,count(ID) as 'count' from timetable,hours where [Check_in]<=h and h<=[Check_out] group by h