【发布时间】:2019-03-06 21:22:54
【问题描述】:
我有一个简单的查询,它返回一周的足球比赛。
select game_group, game_name, game_date, game_StartTime, game_EndTime
from Games
where game_date between '10/1/2018' and '10/7/2018'
结果如下:
Junior | blue_red | 10/1 | 8:00 | 8:30
Junior | blue_red | 10/1 | 8:30 | 9:00
Junior | blue_green | 10/1 | 9:00 | 10:30
Freshman | brown_purple | 10/1 | 12:00 | 12:30
Freshman | black_white | 10/1 | 12:30 | 1:00
Freshman | yellow_pink | 10/3 | 3:45 | 5:00
Senior | blue_orange | 10/4 | 7:00 | 7:30
Sophmore | pink_red | 10/4 | 7:30 | 8:30
Sophmore | green_purple | 10/4 | 8:30 | 9:00
有没有办法操纵查询,以便按日期和时间对游戏进行分组?逻辑是,将同一组中、同一日期和 30 分钟或更短时间内的游戏组合在一起......因此分组因素将是 game_group、game_date 以及 game_StartTime 和 game_EndTime 之间的 30 分钟差异。 ..
像这样:
- 时间表 #1 是:Junior, blue_red;blue_red;blue_green, 10/1, 8:00 to 10:30
- schedule #2 是:新生,brown_purple;black_white; 10/1, 12:00 到 1:00
- 时间表 #3 是:新生,yellow_pink,10 月 3 日,3:45 到 5:00
- 时间表 #4 是:Senior, blue_orange, 10/4, 7:00 to 7:30
- schedule #5 是:Sophmore,pink_red; green_purple,10 月 4 日,7:30 至 9:00
【问题讨论】:
-
到目前为止你尝试了什么?
-
这听起来像是典型的群体和岛屿问题。它已经被问了数百次了。
-
@Brian 我尝试了一堆不同的“分组”想法,但我无法在需要的时间进行组合
-
@SeanLange 团体和岛屿?也许我使用了错误的术语进行搜索,我以前从未听说过。我会试一试,谢谢。
-
我的意思是说“差距和岛屿”。 :D
标签: sql-server sql-server-2012 group-concat gaps-and-islands