sql >> Base de Datos >  >> RDS >> Mysql

mysql group_concat con un conteo dentro?

Debe usar GROUP BY dos veces, primero en (user_id, estado) de lo siguiente para obtener recuentos y luego en user_id de la tabla unida para concatenar:

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