Bạn muốn tạo một hàng riêng biệt cho mỗi ký tự. Một cách là tạo tất cả các ký tự và sau đó tổng hợp chúng lại. Đây là một cách tiếp cận:
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;
CHỈNH SỬA:
Đề xuất của Alan là một truy vấn tốt hơn:
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;