Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql group_concat com uma contagem dentro?


Você precisa usar GROUP BY duas vezes, primeiro em (user_id, status) de seguir para obter contagens, em seguida, em user_id da tabela unida para concat:
SELECT users.name, GROUP_CONCAT( CONCAT(f.status, ',', f.cnt) SEPARATOR '|' )
FROM users 
JOIN
( SELECT user_id, status, count(id) AS cnt
  FROM application_follows
  GROUP BY user_id, status ) f
ON f.user_id = users.id
GROUP BY users.id