601. 体育馆的人流量
这题的思路参考评论区,很精奇的思想,主要分为三种情况考虑进来,以a的id最小、b的id最小、c的id最小这三种进行检索查询,其中由于这三种情况的组合可能出现重复,所以需要distinct去重,主题采用笛卡尔积的形式进行关联。
题解:
SELECT distinct a.* FROM Stadium a,Stadium b,Stadium c
WHERE a.people >= 100 and b.people >= 100 and c.people >= 100
and(
(a.id = b.id - 1 and b.id = c.id - 1) or
(a.id = b.id - 1 and a.id = c.id + 1) or
(a.id = b.id + 1 and b.id = c.id + 1)
) order by a.id