आप प्रत्येक वर्ण के लिए एक अलग पंक्ति बनाना चाहते हैं। एक तरीका यह है कि सभी पात्रों को उत्पन्न किया जाए और फिर उनके द्वारा एकत्र किया जाए। यहाँ एक दृष्टिकोण है:
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;
संपादित करें:
एलन का सुझाव एक बेहतर प्रश्न है:
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;