Guest User

Untitled

a guest
Mar 18th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. WITH RECURSIVE fibonacci AS (
  2. SELECT
  3. 0 AS Current,
  4. 1 AS Next
  5. UNION ALL
  6. SELECT
  7. Next AS Current,
  8. Current + Next AS Next
  9. FROM fibonacci
  10. WHERE Next < 1000
  11. )
  12. SELECT Current AS fibonacci_series FROM fibonacci;
  13. /*
  14. create table routes (
  15. id serial primary key,
  16. departing varchar(100) not null,
  17. arriving varchar(100) not null
  18. );
  19.  
  20. insert into routes (id, departing,arriving) VALUES (1,'Raleigh','Washington');
  21. insert into routes (id, departing,arriving) VALUES (2,'Raleigh','Atlanta');
  22. insert into routes (id, departing,arriving) VALUES (3,'Raleigh','Miami');
  23. insert into routes (id, departing,arriving) VALUES (4,'Atlanta','Chicago');
  24. insert into routes (id, departing,arriving) VALUES (5,'Chicago','New York');
  25. insert into routes (id, departing,arriving) VALUES (6,'New York','Washington');
  26. insert into routes (id, departing,arriving) VALUES (7,'Washington','Raleigh');
  27. insert into routes (id, departing,arriving) VALUES (8,'New York','Toronto');
  28. insert into routes (id, departing,arriving) VALUES (9,'Washington','New York');
  29. insert into routes (id, departing,arriving) VALUES (10,'Atlanta','Miami');
  30. insert into routes (id, departing,arriving) VALUES (11,'Atlanta','Raleigh');
  31. insert into routes (id, departing,arriving) VALUES (12,'Miami','Raleigh');
  32. insert into routes (id, departing,arriving) VALUES (13,'Houston','Chicago');
  33. insert into routes (id, departing,arriving) VALUES (14,'Toronto','New York');
  34. */
  35.  
  36. SELECT * FROM routes;
  37.  
  38. /*
  39. WITH RECURSIVE destinations AS (
  40. SELECT arriving
  41. FROM routes
  42. WHERE departing = 'Raleigh'
  43. UNION
  44. SELECT routes.arriving
  45. FROM destinations, routes
  46. WHERE
  47. destinations.arriving=routes.departing
  48. )
  49. SELECT * FROM destinations;
  50. */
  51.  
  52. WITH RECURSIVE full_routes AS (
  53. SELECT departing::text AS path, arriving::text
  54. FROM routes
  55. WHERE departing='Raleigh'
  56. UNION
  57. SELECT
  58. CONCAT(full_routes.path, ' > ',
  59. routes.arriving),
  60. routes.arriving
  61. FROM full_routes, routes
  62. WHERE
  63. full_routes.arriving=routes.departing
  64. AND
  65. POSITION(routes.arriving IN full_routes.path)=0
  66. ) SELECT * FROM full_routes;
  67. /*
  68. SELECT departing AS path, arriving
  69. FROM routes
  70. WHERE departing='Raleigh';
  71. "Raleigh";"Washington"
  72. "Raleigh";"Atlanta"
  73. "Raleigh";"Miami"
  74. */
Add Comment
Please, Sign In to add comment