Requête DB2 avec COUNT et DISTINCT

Résolu/Fermé
Pitu Messages postés 1441 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 - 11 juin 2010 à 11:23
Pitu Messages postés 1441 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 - 11 juin 2010 à 15:10
Bonjour,

J'ai un petit soucis pour arriver à écrire ma requête DB2 (sous MVS/SPUFI).

Structure de la table : (les colonnes xxx ne m'intéressent pas, mais existent dans la table)

Cle1 Cle2 Cle3 Rub1 Rub2 Rub3 Rub4 xxx1 xxx2 xxx3 ...

A001 B001 C001 1234 5678 0000 aaa1 aaa2 aaa3
A001 B001 C001 1234 5678 0000 bbb1 bbb2 ccc3
A001 B001 C001 4321 5678 0000 ccc1 ddd2 ddd3
A001 B001 C001 1234 5678 0000 ...

A002 B001 C001 2345 6789 1111 ...
A002 B001 C001 2345 6789 1111 ...
A002 B001 C001 2345 6789 1111 ...

A003 B001 C001 3456 7890 1111 ...
A003 B001 C001 3456 7890 1111 ...
A003 B001 C001 3465 7890 2222 ...
A003 B001 C001 3456 7890 3333 ...
A003 B001 C001 6543 7890 1111 ...
A003 B001 C001 3456 7890 1111 ...



Le but est de savoir si, dans cette table, il existe des lignes pour une clef constituée des 3 premières colonnes pour lesquelles les valeurs Rub1, Rub2 et Rub3 ne sont pas toutes les mêmes.
Idéalement, j'aimerais avoir pour résultat le nb de DISTINCT sur chaque groupe de colonnes clé :
A001 B001 C001 : 2

A002 B001 C001 : 1

A003 B001 C001 : 4



Doit falloir combiner des COUNT, des DISTINCT et des GROUP BY, mais je sèche ...
Je n'ai pas obligation de faire ce traitement en 1 seule requête, je peux en enchaîner plusieurs, comparer des résultats de COUNT, etc ...

Merci d'avance si quelqu'un peut me donner un coup de main.



1 réponse

Pitu Messages postés 1441 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 125
11 juin 2010 à 15:10
Finalement, j'apporte moi-même la réponse après moultes tentatives ...

SELECT clé1, clé2, clé3, COUNT(*) FROM(
SELECT DISTINCT
clé1, clé2, clé3, rub1, rub2, rub3, rub4
FROM Table ) A
GROUP BY
clé1, clé2, clé3
;


2