2016-09-19 9:18 GMT+12:00 Patrick B <patrickbake...@gmail.com>:

> Hi guys,
>
> I've got the following query:
>
> WITH
>>   accounts AS (
>> SELECT
>>         c.id AS company_id,
>>         c.name_first AS c_first_name,
>>         c.name_last AS c_last_name,
>>         c.company AS c_name,
>>     FROM public.clients c
>>     WHERE id = 33412393
>>     ORDER BY 1 LIMIT 100
>>     )
>>         SELECT
>>                 r.parts[4]::INT AS account_id,
>>                 r.parts[6]::INT AS n_id,
>>                 r.parts[9] AS variation,
>>                 size,
>> FROM (
>>         SELECT
>>                   string_to_array(full_path, '/') AS parts,
>>                   size
>>   FROM public.segments s
>>   WHERE public.f_get_account_from_full_path(s.full_path) IN (SELECT
>> company_id FROM accounts)
>> ) r
>
>
> ... and I want to get only the greatest note_id order by size,
>
> How can I put this query into the above one?
>
>>                 SELECT DISTINCT ON
>>                         (n_id) n_id,
>>                         MAX(size)
>>                 FROM
>>                         test1
>>                 GROUP BY
>>                         note_id, size, st_ino, account_id
>>                 ORDER BY
>>                         note_id, size desc
>
>
> DISTINCT ON (r.parts[6]::INT) AS n_id - it doesn't work...
>
>
> Thanks
> Patrick
>



Actually.. I was able to get what I needed doing:


WITH
>   accounts AS (
> SELECT
>         c.id AS company_id,
>         c.name_first AS c_first_name,
>         c.name_last AS c_last_name,
>         c.company AS c_name,
>     FROM public.clients c
>     WHERE id = 33412393
>     ORDER BY 1 LIMIT 100
>     )
>         SELECT DISTINCT ON
> (r.parts[6]::INT) r.parts[6]::INT AS n_id,
> r.parts[4]::INT AS account_id,
>                 r.parts[9] AS variation,
>                 size,
> FROM (
>         SELECT
>                   string_to_array(full_path, '/') AS parts,
>                   size
>   FROM public.segments s
>   WHERE public.f_get_account_from_full_path(s.full_path) IN (SELECT
> company_id FROM accounts)
> ) r



Thanks guys!

Reply via email to