sql >> Databáze >  >> RDS >> PostgreSQL

Dotaz SQL k převodu počtů sloupců na počty řádků

Tyto typy dotazů se snáze vytvářejí s cílem GROUP BY, jako je tento:

Select 
case when profile.foo ~* '5.0.2195' then 'Win2k'
     when profile.foo ~* '5.1.2600' then 'WinXP' 
     when profile.foo ~* '5.2.3790' then 'W2k3'
     when (profile.foo ~* '6.0.6000'
        or profile.foo ~* '6.0.6001'
        or profile.foo ~* '6.0.6002') 
        then 'Vista'
     when (profile.foo ~* '6.1.7600'
        or profile.foo ~* '6.1.7601')
        then 'Win7'
     when profile.foo ~* '6.2.9200' then 'Win8'
     when (profile.foo ~* '6.3.9200'
        or profile.foo ~* '6.3.9600')
        then 'Win8.1' ELSE 'Other' END as type,
     count(*) as cnt
From profile
GROUP BY 1

Jak je uvedeno níže, tento dotaz bude fungovat pro vzájemně se vylučující případy, tj. když profile.foo obsahuje hodnotu představující jeden OS na řádek



  1. Jak převést html do pdf pomocí php?

  2. Pojmenovaný dotaz, Nativní dotaz nebo Kritéria API

  3. Extrakce Oracle BLOB velmi pomalá

  4. Vložit do pole automatického zvýšení