Các loại truy vấn này dễ thực hiện hơn với mục tiêu là GROUP BY, như sau:
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
Như đã nhận xét bên dưới, truy vấn này sẽ hoạt động đối với các trường hợp loại trừ lẫn nhau, tức là khi profile.foo
chứa một giá trị đại diện cho một hệ điều hành trên mỗi hàng