Re: A function to find errors in groups in a table

Shaozhong SHI <shishaozhong@gmail.com>

From: Shaozhong SHI <shishaozhong@gmail.com>
To: Steve Midgley <science@misuse.org>
Cc: pgsql-sql <pgsql-sql@lists.postgresql.org>
Date: 2022-06-09T23:13:20Z
Lists: pgsql-general, pgsql-sql
The first two can be regarded right.  Certainly, the last one must be
wrong.  How can a primary flow get into a secondary flow?

That is odd.

Regards,

David

On Thursday, 9 June 2022, Steve Midgley <science@misuse.org> wrote:

>
>
> On Thu, Jun 9, 2022 at 6:37 AM Shaozhong SHI <shishaozhong@gmail.com>
> wrote:
>
>> There is a table full of grouped values like the following
>>
>> nodeid     link_type      primary
>> 11           outflowlink       1
>> 11              inflowlink      1
>> 11              outflowlink     2
>>
>> Primary of 1 indicates a primary water course.  Primary of 2 indicates a
>> secondary water course.
>>
>> Obviously, one of the out flow links is an error, as its primacy value is
>> 2.  It is wrong that water flows from a primary water course into a
>> secondary water course.
>>
>> How can a function can be designed to find and report such errors?
>>
>
> Is the problem that there exists this row:
>
> 11              outflowlink     2
>
> But there is no corresponding row:
>
> 11              inflowlink     2
>
> So that you need to find all "orphan" rows that don't have a corresponding
> member with the opposing data field inflowlink or outflowlink where the
> "primary" column is the join field between the two rows?
>
> Thanks for clarifying your problem,
> Steve
>