Suponha, por exemplo, que eu tenha uma tabela que registre uploads e downloads de arquivos, por usuários. Esta tabela poderia ter as seguintes colunhas:
- Nome do usuário;
- Data da ação,
- Tipo da ação (upload ou download).
- O nome do usuário;
- O total de registros;
- O total de uploads;
- O total de downloads.
select usuario,
count(1) total,
sum(case when acao='Upload' then 1 else 0 end) uploads,
sum(case when acao='Download' then 1 else 0 end) downloads
from historico
group by usuario
order by 2 desc
Então, para cada linha, cada sum() vai somar 1 ou 0, conforme o valor da coluna acao. O count(1) vai contar o número de linhas agrupadas por usuário e será sempre igual a soma de uploads e downloads, a menos que haja mais tipos de ações.
Nenhum comentário:
Postar um comentário