中级农民
- 积分
- 135
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2020-6-15
- 最后登录
- 1970-1-1
|
# LEAD() and LAG() - 1
603. Consecutive Available Seats (LEAD() and LAG())
https://leetcode.com/problems/co ... L-Solutions%3A-LEAD()-and-Self-Join-%2B-Union
- SELECT seat_id
- FROM ( SELECT. Waral dи,
- CASE
- WHEN seat_id + 1 = IFNULL(LEAD(seat_id) OVER(ORDER BY seat_id),-100) THEN seat_id
- WHEN seat_id - 1 = IFNULL(LAG(seat_id) OVER(ORDER BY seat_id),-100) THEN seat_id
- END AS seat_id
- FROM cinema WHERE free = 1 ) T. From 1point 3acres bbs
- WHERE seat_id IS NOT NULL
- ORDER BY 1 ASC
- WITH CTE AS (SELECT * FROM cinema WHERE free = 1 )
- SELECT C1.seat_id FROM CTE C1
- LEFT JOIN CTE C2 ON C1.seat_id = C2.seat_id + 1
- LEFT JOIN CTE C3 ON C1.seat_id = C3.seat_id - 1. ----
- WHERE C2.seat_id IS NOT NULL OR C3.seat_id IS NOT NULL
- ORDER BY 1 ASC
- WITH STEP1 AS
- (SELECT * FROM cinema WHERE free = 1)
- SELECT S1.seat_id FROM STEP1 S1
- INNER JOIN STEP1 S2 ON S1.seat_id = S2.seat_id - 1
- UNION
- SELECT S1.seat_id FROM STEP1 S1
- INNER JOIN STEP1 S2 ON S1.seat_id = S2.seat_id + 1
复制代码
.
|
|