sql >> データベース >  >> RDS >> PostgreSQL

Postgresでエイリアスを使用してネストされたSELECTCOUNTを作成する方法

    文字ごとに個別の行を作成する必要があります。 1つの方法は、すべての文字を生成してから、それらによって集約することです。これが1つのアプローチです:

    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;
    


    1. 複雑な結合クエリに対して、ORACLEでOFFSETとLIMITを適用しますか?

    2. OraclePLSQLで区切りリストをループする方法

    3. mySQLdateTimerangeクエリの問題

    4. SQLで2列で並べ替える方法は?