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

MySQL:cuente los usuarios activos/inactivos/prohibidos y seleccione a los usuarios en función del estado en una consulta

No hay forma de obtener el resultado esperado con una sola consulta (ya que la estructura del resultado es diferente). Tienes que usar dos consultas diferentes para obtener la información esperada de los users tabla:

1 - Puede obtener el status descripción general con lo siguiente:

SELECT 
  SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS active_users,
  SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS inactive_users,
  SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) AS banned_users
FROM users

2 - Para obtener todos los usuarios con status = 0 (activo) puedes usar lo siguiente:

SELECT *
FROM users
WHERE status = 0

demostración en dbfiddle.uk