Anda ingin membuat baris terpisah untuk setiap karakter. Salah satu caranya adalah dengan menghasilkan semua karakter dan kemudian menggabungkannya. Berikut ini salah satu pendekatannya:
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;
EDIT:
Saran Alan adalah pertanyaan yang lebih baik:
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;