SQL Upit - sortiranje i group by

Pokušavam složiti jedan upit, ali sam sada već lagano bez ideja. Uglavnom imam tablicu koja izgleda recimo ovako

ID | engine | query | traffic

1 | google.com | banana | 5
2 | google.hr | jabuka | 3
3 | google.hr | banana | 1
4 | google.com | jabuka | 7
5 | google.net | banana | 20
6 | google.hr | jabuka | 20
7 | google.net | jabuka | 20
7 | google.com | jabuka | 3

Znači upit bi trebao vratiti rezultate tako da samo nekako napravi distinct ili group by za query i engine kolonu, znači da samo jednom vrati kombinaciju engine/query ali zbroji ukupan broj traffica. Rezultat bi trebao biti sortiran po trafficu, znaci od najveceg prema dolje.

Znaci rezultat koji bi trebao vratiti upit bi bilo nesto ovako:

engine | query | traffic

google.hr | jabuka | 23
google.net | banana | 20
google.com | jabuka | 10
google.com | banana | 5
google.hr | banana | 1

Imam ja tu još nekih kolona, ali to ću znati složiti, bitno mi je ovo da izvučem.

Hvala unaprijed

Mislim da bi to bilo to, nisam testirao, ali dobrano sam siguran da je to no sto trazis:

SELECT engine,query, SUM(traffic) FROM `tablica` GROUP BY engine,query

Ovo gore je dobro, nedostaje samo
ORDER BY 3 DESC

SELECT engine,query, SUM(traffic) FROM tablica GROUP BY engine,query ORDER BY 3 DESC