-1
votes

Est-il possible de revenir plus d'une ligne en sous-requête

ma requête xxx

de même_table_name C

Erreur de jet de requête ci-dessus comme

Sous-requête à une rangée retourne plus d'une ligne.

Mais j'ai besoin de toute la ligne, il renvoie


0 commentaires

4 Réponses :


0
votes

Essayez:

    SELECT COLUMN_A, COUNT(COLUMN_B)  AS ALIAS_NAME 
      FROM SAME_TABLE_NAME 
      WHERE COLUMN_B='X' GROUP BY COLUMN_A


0 commentaires

0
votes

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


0 commentaires

0
votes

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


0 commentaires

0
votes

Une sous-requête scalaire devrait revenir au plus une rangée. Par conséquent, 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>: xxx pré>

Cependant, la meilleure approche est Pour utiliser les fonctions de fenêtre, disponibles dans les versions les plus récentes de MySQL: P>

SELECT c.COLUMN_A,
       SUM(c.COLUMN_B = 'X') OVER (PARTITION BY c.COLUMN_A) as ALIAS_NAME 
FROM SAME_TABLE_NAME c;


0 commentaires