SQL: Group by on value1 and "not" value1?

125 Views Asked by At

I have a table with something like the following:

OrderNo, OrderType
1, Type1
2, Type1
3, Type2
4, Type3
5, Type4

Doing a "group by" on OrderType is easy but is there a way to do a "group by" to get something like:

OrderCount, OrderType
2, Type1
3, Not Type1

This is DB2 but ideally I am looking for a solution that will work regardless of DB vendor.

2

There are 2 best solutions below

1
On BEST ANSWER

try:

Select Case OrderType When 'Type1' Then 'Type1'
            Else 'NotType1' End OrderType, 
       Count(*) OrderCount
From Table
Group By Case OrderType When 'Type1' Then 'Type1'
              Else 'NotType1' End
0
On

group by case when OrderType = 'type1' then 'type1' else 'not type 1' end