Search code examples
sqldb2database-agnostic

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


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.


Solution

  • 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