SQL Como encomendar por dia e, em seguida, pela soma

votos
1

Cada linha da minha mesa é uma aplicação (google, facebook) com a data e bytes.

O que estou fazendo é agrupar por aplicativo e data com este pedido:

SELECT app, sum(bytes) as total, date
FROM logs
WHERE `date` BETWEEN '2018-11-23' AND '2018-11-25'
GROUP BY app, date

Este é o resultado:

app      | total  | date
facebook | 2736   | 2018-11-23
google   | 4968   | 2018-11-23
twitter  | 606520 | 2018-11-23
facebook | 2736   | 2018-11-24
youtube  | 153077 | 2018-11-24
twitter  | 84561  | 2018-11-24

Mas o que eu preciso é a ordem total na DESC. Então agora eu estou tentando para cada dia para pedir pela Total e ter esse resultado:

app      | total  | date
twitter  | 606520 | 2018-11-23 <---
google   | 4968   | 2018-11-23 <---
facebook | 2736   | 2018-11-23
youtube  | 153077 | 2018-11-24 <---
twitter  | 84561  | 2018-11-24 <---
facebook | 2736   | 2018-11-24

Qualquer ideia sobre como fazer isso com mysql? Obrigado !

Publicado 18/12/2018 em 11:06
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Você pode tentar a seguir utilizando order by total desc and date asc

SELECT app, sum(bytes) as total, date
FROM logs
WHERE `date` BETWEEN '2018-11-23' AND '2018-11-25'
GROUP BY app, date
order by date,total desc
Respondeu 18/12/2018 em 11:07
fonte usuário

votos
1

Seus dados de amostra me sugere:

SELECT app, sum(bytes) as total, date
FROM logs
WHERE `date` BETWEEN '2018-11-23' AND '2018-11-25'
GROUP BY app, date
ORDER BY date, total DESC;
Respondeu 18/12/2018 em 11:11
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more