Dans un IF
expression vérifie si une valeur est NULL dans le groupe. Je peux penser à plusieurs façons de procéder :
1) Comptez les valeurs non nulles et comparez-les au nombre de lignes du groupe :
SELECT a, IF(COUNT(b) = COUNT(*), GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a
Voyez-le fonctionner en ligne :sqlfiddle
2) Comptez le nombre de valeurs nulles en utilisant SUM
:
SELECT a, IF(SUM(b IS NULL) = 0, GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a
Voyez-le fonctionner en ligne :sqlfiddle