Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql group_concat z licznikiem w środku?

Musisz dwa razy użyć GROUP BY, najpierw na (user_id, status) z następujących, aby uzyskać liczniki, a następnie na user_id z połączonej tabeli do 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL z miękkim usuwaniem, unikalnymi kluczami i ograniczeniami klucza obcego

  2. MySQL - zapytanie UPDATE za pomocą instrukcji SET zależnej od wyniku poprzedniej instrukcji SET

  3. Jak wybrać określone pola w Laravel Eloquent?

  4. Połączenie MySQL przez SSL z Laravel

  5. Pomoc z zapytaniem MySql — wiersze zawierające maksimum grupowe określonej kolumny