Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH
- minComp
- AS
- (
- SELECT MIN(ID_comp) AS ID_comp
- FROM Trip
- ),
- maxComp
- AS
- (
- SELECT MAX(ID_comp) AS ID_comp
- FROM Trip
- ),
- genUp
- AS
- (
- SELECT
- (
- SELECT ID_comp
- FROM minComp
- ) AS ID_comp
- UNION ALL
- SELECT ID_comp + 1 AS ID_comp
- FROM genUp
- WHERE ID_comp + 1 <=
- (
- SELECT ID_comp
- FROM maxComp
- )
- ),
- compAndHill
- AS
- (
- SELECT DISTINCT lt.ID_comp, rt.ID_comp AS hill
- FROM trip lt
- CROSS JOIN genUp rt
- ),
- corectCompAndHill
- AS
- (
- SELECT ID_comp, hill
- FROM compAndHill
- WHERE hill <= ID_comp
- ),
- corectCompAndHillNoEql
- AS
- (
- SELECT ID_comp, hill
- FROM compAndHill
- WHERE hill < ID_comp
- ),
- compTwoHills
- AS
- (
- SELECT lt.ID_comp, STRING_AGG(lt.hill,'') WITHIN GROUP(ORDER BY lt.ID_comp) AS hill1, STRING_AGG(REVERSE(rt.hill),'') WITHIN GROUP(ORDER BY lt.ID_comp) AS hill2
- FROM corectCompAndHill lt
- LEFT JOIN corectCompAndHillNoEql rt ON lt.ID_comp = rt.ID_comp AND lt.hill = rt.hill
- GROUP BY lt.ID_comp
- )
- SELECT ID_comp, CONCAT(hill1, REVERSE(hill2)) AS hill
- FROM compTwoHills
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement