sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man skapar kapslade SELECT COUNT med alias i Postgres

Du vill skapa en separat rad för varje karaktär. Ett sätt är att generera alla karaktärer och sedan aggregera efter dem. Här är ett tillvägagångssätt:

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:

Alans förslag är en bättre fråga:

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;


  1. FEL:kunde inte utöka filen pg_tblspc/4815857/PG_11_201809051/16321:Inget utrymme kvar på enheten

  2. Relation existerar inte

  3. Hur anropar man lagrade procedurer med EntityFramework?

  4. Uppdatera MySQL utan att ange kolumnnamn