sql >> Database >  >> RDS >> PostgreSQL

SQL-query om kolomtellingen om te zetten in rijtellingen

Dit soort zoekopdrachten zijn gemakkelijker te maken met het doel van GROUP BY, zoals deze:

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

Zoals hieronder wordt opgemerkt, werkt deze zoekopdracht voor elkaar uitsluitende gevallen, d.w.z. wanneer profile.foo bevat een waarde die één besturingssysteem per rij vertegenwoordigt



  1. MySQL-server op MAMP-Windows start niet

  2. Hoe stel ik de waarde van een reeks automatisch elk jaar opnieuw in op 0 in Oracle 10g?

  3. Bindingen invoeren voor een parameter met meerdere waarden in SQL Developer

  4. PyMySQL met behulp van localhost vs socket onsamenhangend gedrag