这是在做一个酒店系统时遇到的问题。通常情况下,一个服务生仅负责一个房间的客人用餐,但是,考虑到效益原因,酒店鼓励服务生同时为多个房间的客人提供服务。这样,酒店每天要对在同一时间段内服务房间最多的一名服务生进行奖励。表1列出了一天中酒店服务生所服务的房间号和服务时间。
表1 服务清单
| room_id |
waiter_name |
start_time |
end_time |
| 1 |
张岚 |
2009-02-01 11:30:00.000 |
2009-02-01 13:30:00.000 |
| 2 |
张岚 |
2009-02-01 11:40:00.000 |
2009-02-01 13:15:00.000 |
| 3 |
孙静 |
2009-02-01 11:45:00.000 |
2009-02-01 14:20:00.000 |
| 4 |
孙静 |
2009-02-01 11:39:00.000 |
2009-02-01 13:20:00.000 |
| 5 |
孙静 |
2009-02-01 11:49:00.000 |
2009-02-01 14:16:00.000 |
| 6 |
孙静 |
2009-02-01 10:37:00.000 |
2009-02-01 11:00:00.000 |
| 3 |
孙静 |
2009-02-01 17:45:00.000 |
2009-02-01 18:20:00.000 |
| 4 |
孙静 |

本文通过一个酒店系统案例,介绍如何利用SQL查询统计在同一时间段内服务房间最多的服务生。通过子查询和CTE两种方法,找出并发服务房间数的最大值,展示SQL在处理时间重叠问题上的应用。
最低0.47元/天 解锁文章
1153

被折叠的 条评论
为什么被折叠?



