我有表 GetTicketNumbers
i UID TicketNumber
2 09901a22c7c3acc6786847c775f1d113 10
6 00dad28bef21f916240d6e8c1c1bd67d 5
12 00dad28bef21f916240d6e8c1c1bd67d 20
我需要生成35行(UID也必须出现在结果中,因为这只是一张表,并且该表需要在上层加入)
10 sequence number started from 1 (row i=2)
than next 5 sequence number (row i=6)
than next 20 sequence number (row i=12)
我需要这样的东西,但没有完成这个查询
With RECURSIVE cte (i, UID, TicketNumbers) as
(
Select i, UID, TicketNumbers from GetTicketNumbers
union all
Select i + 1, UID, TicketNumbers from cte where ?????
) select * from cte order by i;
我使用MySQL。
添加 RowNo + 1 直到 RowNo 达到 TicketNumber
WITH RECURSIVE CTE AS (
SELECT i, UID, TicketNumber, 1 AS RowNo FROM TicketData
UNION ALL
SELECT i, UID, TicketNumber, RowNo+1
FROM CTE c
WHERE RowNo < TicketNumber
)
SELECT *, ROW_NUMBER() OVER (ORDER BY i,RowNo) as TotalRowNumber
FROM CTE;