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

MySQL - conte usuários ativos/inativos/banidos e selecione usuários com base no status em uma consulta


Não há como obter a saída esperada com uma única consulta (já que a estrutura do resultado é diferente). Você precisa usar duas consultas diferentes para obter as informações esperadas dos users tabela:

1 - Você pode obter o status visão geral com o seguinte:
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 obter todos os usuários com status = 0 (ativo) você pode usar o seguinte:
SELECT *
FROM users
WHERE status = 0

demonstração em dbfiddle.uk