IF
で グループ内の値がNULLであるかどうかを式で確認します。それを行うにはいくつかの方法が考えられます:
1)null以外の値をカウントし、グループ内の行数と比較します。
SELECT a, IF(COUNT(b) = COUNT(*), GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a
オンラインで動作することを確認してください: sqlfiddle
2)SUM
を使用してnull値の数をカウントします :
SELECT a, IF(SUM(b IS NULL) = 0, GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a
オンラインで動作することを確認してください: sqlfiddle