1

Je cherche à faire ceci :
SELECT a,nb
FROM t1
  JOIN (SELECT c AS a,COUNT(*) AS nb FROM t1 GROUP BY c) AS t2 USING(a)

Sans perdre les ligne qui dont le COUNT(*) retournerait 0.
Une idée ?
En faisant LEFT JOIN, j'obtiens la valeur NULL pour nb, mais j'aimerais obtenir 0.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

2

C'est chiant le SQL, hein gni ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

Pour voir ce que tu souhaites c'est un peu difficile sans jeu d'essai compatible a ta recherche.

4

Si c'est seulement les null que tu veux transformer en 0, peut-être que IFNULL et COALESCE peuvent t'aider.
avatar

5

Merci Thepro, c'est exactement ce dont il me faut !
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

6

Il doit y avoir un moyen de faire ce que tu veux sans bricolage :
SELECT a, count(t2.c) AS nb FROM t1 LEFT JOIN t1 AS t2 ON t1.a=t2.c GROUP BY t1.a
Code non testé...
avatar