我有一个名为ServiceRequest的表.请参阅下面的一些记录和专栏. RowID Type Area IntID OwnerBussUnit1 AB DD1 1234 Abc2 AB EE2 7635 Abc3 CD DD1 1234 Bde4 FE FF3 2423 Gte5 AB DD1 1234 Abc 6 CD DD1 6363 Sde7 TT QQ6 7635 Sde8 AB
RowID Type Area IntID OwnerBussUnit 1 AB DD1 1234 Abc 2 AB EE2 7635 Abc 3 CD DD1 1234 Bde 4 FE FF3 2423 Gte 5 AB DD1 1234 Abc 6 CD DD1 6363 Sde 7 TT QQ6 7635 Sde 8 AB DD1 9998 Dfr 9 AB DD1 9998 Red
1)列出他们
我想列出IntID列中具有重复值的记录.结果中的每条记录都应该具有:
> #IntID:计算重复IntID的次数(因此可以超过两次)
> #GroupBy:“Type”和“Area”列组合计算重复IntID的次数
> SameOwner;其中,在Type和Area的分组中,OwnerBussUnit具有相同的值
> DiffOwner;其中,在Type和Area的分组中,OwnerBussUnit没有相同的值Order by IntID,RowID
我要找的结果如下:
IntID RowID Type Area #IntID #GroupBy SameOwner DiffOwner 1234 1 AB DD1 3 2 Yes No 1234 3 CD DD1 3 1 Yes No 1234 5 AB DD1 3 2 Yes No 7635 2 AB EE2 2 1 No Yes 7635 7 TT OO6 2 1 No Yes 9998 8 AB DD1 2 2 No Yes 9998 9 AB DD1 2 2 No Yes
2)计算他们
计算按类型和区域分组的重复IntID.
所以结果如下:
Type Area #IntID AB DD1 4 CD DD1 1 AB EE2 1 TT OO6 1
我怎样才能在SQL中实现这一点(在DB2中)?
2号).select area, type, count(*) from servicerequest group by area, type