SELECT DISTINCT ON removes results - Mailing list pgsql-general

From Guyren Howe
Subject SELECT DISTINCT ON removes results
Date
Msg-id AF05A411-E3A8-4317-8D6B-D4D658991C8B@gmail.com
Whole thread Raw
Responses Re: SELECT DISTINCT ON removes results
Re: SELECT DISTINCT ON removes results
List pgsql-general
Using 9.5, this query:

SELECT o.id,
a.number AS awb
FROM pt.orders o
LEFT JOIN (
SELECT DISTINCT ON ((string_agg(air_way_bills.number::text, ','::text)))
string_agg(air_way_bills.number::text, ','::text) AS number,
air_way_bills.order_id
FROM pt.air_way_bills
GROUP BY air_way_bills.order_id) a ON a.order_id = o.id
gives me null for awb. Removing the DISTINCT ON clause:

SELECT o.id,
a.number AS awb
FROM pt.orders o
LEFT JOIN (
SELECT string_agg(air_way_bills.number::text, ','::text) AS number,
air_way_bills.order_id
FROM pt.air_way_bills
GROUP BY air_way_bills.order_id) a ON a.order_id = o.id
where o.id = 2792;
gives me an awb. I'm confused about how this can be.

pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: How to hint 2 coulms IS NOT DISTINCT FROM each other
Next
From: "David G. Johnston"
Date:
Subject: Re: SELECT DISTINCT ON removes results