sql >> Database >  >> RDS >> PostgreSQL

Voeg rijen postgres samen en vervang waarden door laatste wanneer niet null

Eerste group by organization_core_id om de id's te krijgen van de rijen met de laatste niet-null-waarden voor slug en name en schuif aan aan tafel:

select
  t.organization_core_id, 
  t1.slug,
  t2.name
from (
  select 
    organization_core_id, 
    max(case when slug is not null then id end) slugid, 
    max(case when name is not null then id end) nameid
  from tablename
  group by organization_core_id
) t 
left join tablename t1 on t1.id = t.slugid
left join tablename t2 on t2.id = t.nameid

Bekijk de demo .
Resultaten:

> organization_core_id | slug           | name      
> -------------------: | :------------- | :---------
>                    1 | dolphin        | Dolphin v2
>                    2 | sea-horse-club | Sea Horse 



  1. SQL AS:gebruik, voorbeelden en hoe u er het beste van kunt profiteren

  2. Hoe praat Access met ODBC-gegevensbronnen? Deel 2

  3. PHP - Filteren op MySQL-veldwaarde

  4. Krijg invoerwaarde uit database op basis van eerdere invoer