À l'aide de cas avec fonction d'agrégation & les clauses group by
J'ai une requête à l'aide de CAS avec fonction d'agrégation et de la clause group by, à l'instar de ce
SELECT
A
,B
,C
,CASE
WHEN <COLUMN_NAME_A> IS NOT NULL
THEN (SUM(<COLUMN_NAME_B>) * <COLUMN_NAME_A>)
ELSE 0
END AS <ALIAS>
FROM <TARGET_TABLE>
GROUP BY
A
,B
,C
,<ALIAS>
et j'ai une erreur "GROUP BY et WITH...BY les clauses ne peuvent pas contenir d'agrégation"
puis-je modifier mon script (exclure du groupe par)
SELECT
A
,B
,C
,CASE
WHEN <COLUMN_NAME_A> IS NOT NULL
THEN (SUM(<COLUMN_NAME_B>) * <COLUMN_NAME_A>)
ELSE 0
END AS <ALIAS>
FROM <TARGET_TABLE>
GROUP BY
A
,B
,C
et encore ai une erreur "non-valeurs d'agrégation doit faire partie du groupe de sociétés associées"
s'il vous plaît aidez-moi à comprendre pourquoi ils doivent être une partie du groupe par
et que dois-je faire pour le réparer?
- essayez cette link
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Mais votre CAS n'ont aucun sens. Si
<COLUMN_NAME_A>
estNULL
c'est à dire<COLUMN_NAME_B> * <COLUMN_NAME_A>
estNULL
il sera ignoré parSUM
globale.Utiliser ce lieu.
ISNULL
utilisé dans le cas où aucune valeur non nulle récupérées.Peut-être essayer cette