Re: How to generate the order if you know the next item for each item? - Mailing list pgsql-sql

From Tony Shelver
Subject Re: How to generate the order if you know the next item for each item?
Date
Msg-id CAG0dhZCWoSGorUqCidfM9P_nz6yzx9W1zYmjt-0j9oo7Hjv8gQ@mail.gmail.com
Whole thread Raw
In response to Re: How to generate the order if you know the next item for each item?  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: How to generate the order if you know the next item for each item?
List pgsql-sql
We have some ordered processing that we need to do that can involve reading through 10s of thousands of records, with a lot of conditional processing.  We use functions almost exclusively for this, returning a table of results.


On Tue, 3 Aug 2021 at 18:22, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tue, Aug 3, 2021 at 8:40 AM Rockdale Green <rockdale.green@gmail.com> wrote:
 can I do it in one query? 

Yes.
It might be just very simple and I have tried but somehow I am blocked. 


The feature you need is a recursive CTE (WITH RECURSIVE clause).  It requires an initial row (which in this case is task 3, the only task that doesn't appear as a task_order value) and a query to retrieve the next row(s) using the information available in the previous iteration.

The documentation and/or online resources can walk you through the specifics.

David J.

pgsql-sql by date:

Previous
From: "Tchouante, Merlin"
Date:
Subject: RE: Like Command returning wrong result set
Next
From: "David G. Johnston"
Date:
Subject: Re: Show table and columns with null value and count