Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH RECURSIVE fibonacci AS (
- SELECT
- 0 AS Current,
- 1 AS Next
- UNION ALL
- SELECT
- Next AS Current,
- Current + Next AS Next
- FROM fibonacci
- WHERE Next < 1000
- )
- SELECT Current AS fibonacci_series FROM fibonacci;
- /*
- create table routes (
- id serial primary key,
- departing varchar(100) not null,
- arriving varchar(100) not null
- );
- insert into routes (id, departing,arriving) VALUES (1,'Raleigh','Washington');
- insert into routes (id, departing,arriving) VALUES (2,'Raleigh','Atlanta');
- insert into routes (id, departing,arriving) VALUES (3,'Raleigh','Miami');
- insert into routes (id, departing,arriving) VALUES (4,'Atlanta','Chicago');
- insert into routes (id, departing,arriving) VALUES (5,'Chicago','New York');
- insert into routes (id, departing,arriving) VALUES (6,'New York','Washington');
- insert into routes (id, departing,arriving) VALUES (7,'Washington','Raleigh');
- insert into routes (id, departing,arriving) VALUES (8,'New York','Toronto');
- insert into routes (id, departing,arriving) VALUES (9,'Washington','New York');
- insert into routes (id, departing,arriving) VALUES (10,'Atlanta','Miami');
- insert into routes (id, departing,arriving) VALUES (11,'Atlanta','Raleigh');
- insert into routes (id, departing,arriving) VALUES (12,'Miami','Raleigh');
- insert into routes (id, departing,arriving) VALUES (13,'Houston','Chicago');
- insert into routes (id, departing,arriving) VALUES (14,'Toronto','New York');
- */
- SELECT * FROM routes;
- /*
- WITH RECURSIVE destinations AS (
- SELECT arriving
- FROM routes
- WHERE departing = 'Raleigh'
- UNION
- SELECT routes.arriving
- FROM destinations, routes
- WHERE
- destinations.arriving=routes.departing
- )
- SELECT * FROM destinations;
- */
- WITH RECURSIVE full_routes AS (
- SELECT departing::text AS path, arriving::text
- FROM routes
- WHERE departing='Raleigh'
- UNION
- SELECT
- CONCAT(full_routes.path, ' > ',
- routes.arriving),
- routes.arriving
- FROM full_routes, routes
- WHERE
- full_routes.arriving=routes.departing
- AND
- POSITION(routes.arriving IN full_routes.path)=0
- ) SELECT * FROM full_routes;
- /*
- SELECT departing AS path, arriving
- FROM routes
- WHERE departing='Raleigh';
- "Raleigh";"Washington"
- "Raleigh";"Atlanta"
- "Raleigh";"Miami"
- */
Add Comment
Please, Sign In to add comment