返回从左联接开始的列中具有连续值的数据库行的计数

mf98qq94  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(218)

我有两张table。 availabilities 以及 time_slots . 这个 availabilities 表有一个 time_slot_id 列。 time_slots 只需以15分钟的间隔保存一天24小时的所有时间。是的 from , to ,和 sequence 柱。里面有数据,看起来像这样。 |from |to |sequence |00:00:00 |00:15:00 |0 |00:15:00 |00:30:00 |1 |00:30:00 |00:45:00 |2 |00:45:00 |01:00:00 |3 一路走到午夜,序列增加1。我需要找出可用性,它的时隙是连续的,相邻的时隙在两边,然后计算连续可用性的数量。到目前为止,我有下面的这个查询,它让我找出了所有具有连续时间段的可用性,但无法计算出如何计算它们。

SELECT a1.date, ts1.sequence, ts1.from, ts1.to
FROM availabilities a1
LEFT JOIN time_slots ts1 ON a1.time_slot_id = ts1.id
WHERE EXISTS (SELECT *
            FROM availabilities a2
            LEFT JOIN time_slots ts2 ON a2.time_slot_id = ts2.id
            WHERE ts1.sequence IN (ts2.sequence - 1, ts2.sequence + 1)
            )

完全有可能存在多组顺序可用性,因此只需确保至少一组顺序可用性大于某个计数(例如3),该计数每次都可能不同。这个变量的数量将取决于一些用户导入,但我只需要知道如何确保我有足够的可用性,以涵盖该计数。
非常感谢您的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题