|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 167 ![]() |
Bonjour,
J'ai un problème sur un select comportant un count(*). Voici ma table (elle permet de stocker plusieurs ligne de texte pour un élément identifié par n°1, n°2, n°3) Code :
Je n'ai pas besoin de l'information m'indiquant que j'ai 3 lignes pour A et 2 lignes pour B et 1 sans catégorie. Idem pour n°1=10, n°2=25, n°3=0, le count devrait me ramener 2 puisque j'ai des enregistrements pour A et pour B. Seulement comment faire ce count? Je pensais faire un group by sur n°1, n°2, n°3 mais ça me ramène le nombre total de lignes pour chaque n1, n2, n3. en rajoutant la catégorie dans le group by, j'ai le nombre d'enregistrements pour chaque catégorie... Bref, je ne m'en sors pas... Si quelqu'un voit comment faire, j'attends vos conseils! Merci |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 167 ![]() |
Merci!
Par contre, le distinct est de trop, non? Lorsque je fais un count(distinct categorie) pour num1=10, num2=0, num3=0, j'obtiens 2, alors que count(categorie) = 3. Et j'ai bien des enregistrements pour categ=A, categ = B et categ = null, donc le count(categorie) me parait plus adapté. Faut que je revois toutes ces histoires de groupement, à force de faire des requêtes plutot simples, j'ai perdu la main... |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
C'est à cause de la valeur NULL, le count(colonne) ne compte pas les NULLs (tiré de la doc proposé ci dessus) :
Citation:
Code :
count(DISTINCT coalesce(colonne,'XXX')) |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 167 ![]() |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Ben DISTINCT permet de compter 1 seule fois A, 1 seule fois B et, avec le COALESCE, 1 seule fois la valeur NULL, donc le résultat sera 3 pour 10,0,0.
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 167 ![]() |
|
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Je ne vois pas bien où tu as 3 sans DISTINCT + COALESCE (avec l'exemple fourni) :
Code :
|
||
|
|
20
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : avril 2003 Messages : 167 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com