我想在制定我的查询方面寻求一些帮助,以便我能够实现以下所述的预期产出。我尝试了很多次来实现预期的输出,但是我总是得到实际的输出,如下所示。我使用MySQL作为关系数据库管理系统。顺便说一句,如果这是不可能的,只使用一个查询,请让我知道,以便我可以通知我的团队。谢谢
排序规则:
排序规则的全部内容是按顺序显示每个日期的每一组时间段。例如,9月23-26日显示第一组时间段->下一次显示:9月23-26日显示第二组时间段,如果有任何->等等。
预期输出:
| Date | Start_Time | End_Time
|September 23, 2020 | 8:00 AM | 9:00 AM
|September 24, 2020 | 9:00 AM | 10:00 AM
|September 25, 2020 | 8:00 AM | 9:00 AM
|September 26, 2020 | 9:00 AM | 10:30 AM
|September 23, 2020 | 9:00 AM | 10:00 AM 实际输出:
https://i.stack.imgur.com/g9kWV.png
当前代码:
Select DISTINCT timeslot.Timeslot_ID,
timeslot.Date,timeslot.Start_Time,timeslot.End_Time from timeslot
WHERE timeslot.ExamEvent_ID=1 ORDER BY STR_TO_DATE
(CONCAT(timeslot.Start_Time,' - ',timeslot.End_Time), '%l:%i %p - %l:%i %p'),
STR_TO_DATE (timeslot.Date, '%M %e, %Y')发布于 2021-07-14 10:52:03
使用ROW_NUMBER()窗口函数:
SELECT Timeslot_ID, ExamEvent_ID, Date, Start_Time, End_Time
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Date ORDER BY STR_TO_DATE(Start_Time, '%l:%i %p')) rn
FROM timeslot
) t
ORDER BY rn, STR_TO_DATE(Date, '%M %e, %Y')见演示。
https://stackoverflow.com/questions/68373112
复制相似问题