PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment créer un SELECT COUNT imbriqué avec un alias dans Postgres

Vous souhaitez créer une ligne distincte pour chaque caractère. Une façon consiste à générer tous les caractères, puis à les agréger. Voici une approche :

select chr(chars.c + ascii('A')) as c,
       sum(case when ascii(left(m.nome, 1)) = chars.c + ascii('A') then 1 else 0 end)
from generate_series(0, 25) as chars(c) cross join
     merchant m
group by c;

MODIFIER :

La suggestion d'Alan est une meilleure requête :

select chr(chars.c + ascii('A')) as c,
       count(m.nome)
from generate_series(0, 25) as chars(c) left join
     merchant m
     on ascii(left(m.nome, 1)) = chars.c + ascii('A')
group by c;