Extraire les doublons dans une colonne et d'inscription et compter SQL (DB2)

J'ai une table appelée ServiceRequest. Voir ci-dessous certains des enregistrements et des colonnes.

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) LES ÉNUMÉRER
Je voudrais la liste des enregistrements qui ont une valeur en double dans le IntID colonne. Chaque enregistrement dans le résultat devrait avoir:

  • #IntID: le nombre de fois que le double IntID est compté (donc peut être plus de deux fois)
  • #GroupBy: le nombre de fois que le double IntID est compté pour la combinaison des colonnes "Type" et "Zone"
  • SameOwner; où, dans le groupement de Type et de la Région, OwnerBussUnit a la même valeur
  • DiffOwner; où, dans le groupement de Type et de la Région, OwnerBussUnit n'a pas la même valeur de la Commande par IntID, RowID

Le résultat que je cherche, c'est comme suit:

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) LES COMPTER
Compter en double IntID regroupés par Type et par Région.
Donc le résultat ressemblerait à:

Type  Area  #IntID
AB    DD1     4
CD    DD1     1
AB    EE2     1
TT    OO6     1 

Comment puis-je le faire en SQL (DB2)?

quel avez-vous essayé jusqu'à présent?

OriginalL'auteur user2992366 | 2013-11-14