Using variables, as seen here, to simulate the ROW_NUMBER function found in MySQL8 isn't an option when the query is being used to create a View.
What other kinds of workarounds are available for numbering rows if using variables is not an option?
I'll have to come up with a minimal example. But here's an idea of what I'm trying to do. I need find the time ranges between scheduled lesson events. The following produces the results I want, however, it uses variables to number by rows.
SELECT
L1.SCHEDULE_TYPE, L1.STUDIO_ID, L1.ROOM, L1.DAYOFWEEK, L1.END_TIME AS START_GAP, L2.START_TIME AS END_GAP
FROM
(SELECT
SCHEDULE_TYPE, STUDIO_ID, ROOM, DAYOFWEEK, TEACHER_ID, START_TIME, END_TIME
,(@row_number1 := @row_number1 + 1) AS ROW_NUMBER
FROM
LESSON, (SELECT @row_number1 := 0) AS x
ORDER BY
SCHEDULE_TYPE, STUDIO_ID, ROOM, DAYOFWEEK, START_TIME
) AS L1
JOIN
(SELECT
SCHEDULE_TYPE, STUDIO_ID, ROOM, DAYOFWEEK, TEACHER_ID, START_TIME, END_TIME
,(@row_number2 := @row_number2 + 1) AS ROW_NUMBER
FROM
LESSON, (SELECT @row_number2 := 0) AS x
ORDER BY
SCHEDULE_TYPE, STUDIO_ID, ROOM, DAYOFWEEK, START_TIME
) AS L2
ON(
L1.SCHEDULE_TYPE = L2.SCHEDULE_TYPE
AND L1.TEACHER_ID = L2.TEACHER_ID
AND L1.DAYOFWEEK = L2.DAYOFWEEK
AND L1.END_TIME < L2.START_TIME
AND L1.ROW_NUMBER = (L2.ROW_NUMBER - 1)
)