Mysql 在不同行中找到的分组结果
Mysql group results found in different rows
我有一个我自己无法解决的问题。
我在 Mysql(某些连接的结果)中有以下 table 描述所有事件
event_table:
ID
Odl_ID
Evt_ID
Evt_Desc
Evt_Date
Link_1
Link_2
Start_Time
End_Time
1
1
0
开始
2021-08-0610:15:00
空
空
2021-08-0610:15:00
2
2
0
开始
2021-08-0612:15:00
空
空
2021-08-0612:18:00
3
1
0
完成
2021-08-0614:15:00
空
空
2021-08-0610:15:00
2021-08-0614:15:00
4
1
0
生成 PDF 1
2021-08-0614:25:00
C:\Path1
空
5
1
0
生成 PDF 2
2021-08-0614:25:00
空
C:\Path2
6
2
0
完成
2021-08-0614:35:00
空
空
2021-08-0610:18:00
2021-08-0618:15:00
7
2
0
生成 PDF 1
2021-08-0618:25:00
C:\Path3
空
8
2
0
生成 PDF 2
2021-08-0618:25:00
空
C:\Path4
我想创建一个这样的视图,将 Odl_ID 分组并显示在不同行中找到的所有事件(如事件日期、Link_1 等)。
我想要实现的结果 table:
ID
Odl_ID
Evt_Date
Link_1
Link_2
Start_Time
End_Time
1
1
2021-08-0610:15:00
C:\Path1
C:\Path2
2021-08-0610:15:00
2021-08-0614:15:00
2
2
2021-08-0612:15:00
C:\Path3
C:\Path4
2021-08-0612:18:00
2021-08-0618:15:00
我该如何解决这个问题?
我不知道该怎么做,我尝试寻找 pivot table 但我还没有弄清楚问题所在。谢谢
找到了一个可能有效的解决方案,但不知道它是否完全
正确/也许有更好的解决方案
SELECT Odl_Id,
min(Start_time) Start_time,
max(End_time) End_time,
max(Evt_ID) Evt_ID,
max(Link_1) Link_1,
max(Link_2) Link_2
FROM view_2
Group by ODL_Id;
我有一个我自己无法解决的问题。
我在 Mysql(某些连接的结果)中有以下 table 描述所有事件
event_table:
ID | Odl_ID | Evt_ID | Evt_Desc | Evt_Date | Link_1 | Link_2 | Start_Time | End_Time |
---|---|---|---|---|---|---|---|---|
1 | 1 | 0 | 开始 | 2021-08-0610:15:00 | 空 | 空 | 2021-08-0610:15:00 | |
2 | 2 | 0 | 开始 | 2021-08-0612:15:00 | 空 | 空 | 2021-08-0612:18:00 | |
3 | 1 | 0 | 完成 | 2021-08-0614:15:00 | 空 | 空 | 2021-08-0610:15:00 | 2021-08-0614:15:00 |
4 | 1 | 0 | 生成 PDF 1 | 2021-08-0614:25:00 | C:\Path1 | 空 | ||
5 | 1 | 0 | 生成 PDF 2 | 2021-08-0614:25:00 | 空 | C:\Path2 | ||
6 | 2 | 0 | 完成 | 2021-08-0614:35:00 | 空 | 空 | 2021-08-0610:18:00 | 2021-08-0618:15:00 |
7 | 2 | 0 | 生成 PDF 1 | 2021-08-0618:25:00 | C:\Path3 | 空 | ||
8 | 2 | 0 | 生成 PDF 2 | 2021-08-0618:25:00 | 空 | C:\Path4 |
我想创建一个这样的视图,将 Odl_ID 分组并显示在不同行中找到的所有事件(如事件日期、Link_1 等)。
我想要实现的结果 table:
ID | Odl_ID | Evt_Date | Link_1 | Link_2 | Start_Time | End_Time |
---|---|---|---|---|---|---|
1 | 1 | 2021-08-0610:15:00 | C:\Path1 | C:\Path2 | 2021-08-0610:15:00 | 2021-08-0614:15:00 |
2 | 2 | 2021-08-0612:15:00 | C:\Path3 | C:\Path4 | 2021-08-0612:18:00 | 2021-08-0618:15:00 |
我该如何解决这个问题? 我不知道该怎么做,我尝试寻找 pivot table 但我还没有弄清楚问题所在。谢谢
找到了一个可能有效的解决方案,但不知道它是否完全 正确/也许有更好的解决方案
SELECT Odl_Id,
min(Start_time) Start_time,
max(End_time) End_time,
max(Evt_ID) Evt_ID,
max(Link_1) Link_1,
max(Link_2) Link_2
FROM view_2
Group by ODL_Id;