Bonjour à tous,
je bloque sur une requête avec un GROUP BY. Je précise que ma bdd est sous ORACLE.
J'ai une table dans laquelle j'ai une colonne ID,une colonne FLAG qui peut être soit à 0 soit à 1 et une colonne DATE. Pour chaque jour j'ai un ID avec son FLAG.
Je voudrais pouvoir récupérer pour chaque ID le nombre de fois où le flag est à 0.
J'ai tenté sans trop d'espoir un :
Mais ORACLE génère une erreur : "N'est pas une expression GROUP BY" ou alors "Instruction SQL non valide" ça dépend des fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT ID,COUNT(*) AS NBR FROM MA_TABLE GROUP BY ID HAVING FLAG=0 ORDER BY NBR;
Donc j'ai essayer un :
C'est presque ça. Sauf que évidemment la clause WHERE me supprime toute les lignes où FLAG=0 avant de faire le group by. Or moi je voudrais voir apparraitre un 0 pour les ID qui n'ont pas de FLAG à 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT ID,COUNT(*) AS NBR FROM MA_TABLE WHERE FLAG=0 GROUP BY ID ORDER BY NBR;
La solution doit être simple mais j'avoue être un peu rouillé avec les GROUP BY.
Partager