ma requête de même_table_name C p> Erreur de jet de requête ci-dessus comme P> Sous-requête à une rangée retourne plus d'une ligne. P>
blockQuote> Mais j'ai besoin de toute la ligne, il renvoie p> p>
4 Réponses :
Essayez:
SELECT COLUMN_A, COUNT(COLUMN_B) AS ALIAS_NAME
FROM SAME_TABLE_NAME
WHERE COLUMN_B='X' GROUP BY COLUMN_A
Vous obtenez plusieurs résultats dans votre colonne. votre recherche de quelque chose comme ça.
select COLUMN_A, count(b.COLUMN_B) from SAME_TABLE_NAME b
where COLUMN_B='X' GROUP by COLUMN_A
Vous pouvez essayer cela.
SELECT c.COLUMN_A, (select count(b.COLUMN_B) from SAME_TABLE_NAME b where COLUMN_B='X' AND C.COLUMN_A=B.COLUMN_A --- THIS WHERE CLAUSE IS ADDED TO MAP ALL YOUR COUNT RECORD WITH ITS RESPECTED COLUMN GROUP by B.COLUMN_A) as ALIAS_NAME FROM SAME_TABLE_NAME c
Une sous-requête scalaire devrait revenir au plus une rangée. Par conséquent, Cependant, la meilleure approche est Pour utiliser les fonctions de fenêtre, disponibles dans les versions les plus récentes de MySQL: P> groupe par code> est pas em> approprié. Si vous souhaitez exprimer cela à l'aide d'une sous-requête, vous voulez une sous-requête corrélée sans groupe par code> em>: SELECT c.COLUMN_A,
SUM(c.COLUMN_B = 'X') OVER (PARTITION BY c.COLUMN_A) as ALIAS_NAME
FROM SAME_TABLE_NAME c;