Olá Felipe, tudo bem? Você chegar ao mesmo resultado pode ser apenas uma coincidência, porém a função dois dois é um pouco diferente, note que o ORDER BY
é apenas para ordenar a consulta, já o HAVING
faz um filtro nesse agrupamento que é feito pelo GROUP BY
, então talvez nesse cenário, por alguma coincidência, ou pelo que está sendo analisado você tenha o mesmo resultado, mas em um outro cenário provavelmente o comportamento será diferente. Então o que eu sugiro é que use cada um de acordo com a funcão, se você deseja filtrar o agrupamento e trazer como resultado apenas os clientes com "mais 2000 compras em 2016" então o mais coerente é usar o HAVING
, agora se você precisa apenas ordenar e ter uma lista de todos os clientes com suas respectivas quantidades de compras em 2016 você pode utilizar o ORDER BY
.
Espero ter esclarecido sua dúvida!