sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL-fråga för att överföra kolumnantal till radantal

Den här typen av frågor är lättare att göra med syftet GROUP BY, så här:

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

Som kommenteras nedan kommer denna fråga att fungera för ömsesidigt uteslutande fall, d.v.s. när profile.foo innehåller ett värde som representerar ett OS per rad



  1. MySQL LADDA DATA LOKAL INFIL Python

  2. Hur fungerar alter table switch på sql server?

  3. Hur tar man bort vagnreturer och nya rader i Postgresql?

  4. HTML - Ändra\Uppdatera sidans innehåll utan att uppdatera\ladda om sidan