Existe diferença de performance entre usar GroupBY/Having e With/Groupby/Select/Where?
Em relação a custo, seria o mesmo, ja que ambas retornam a mesma quantidade de informação?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Existe diferença de performance entre usar GroupBY/Having e With/Groupby/Select/Where?
Em relação a custo, seria o mesmo, ja que ambas retornam a mesma quantidade de informação?
Olá Pablo, tudo bem?
Quando falamos de performance e custo no BigQuery, é importante entender que tanto o uso de GROUP BY com HAVING quanto o uso de WITH (ou CTE) seguido de GROUP BY e WHERE, podem ter pequenas diferenças, dependendo da consulta e sua complexidade.
GROUP BY com HAVING é direto e fácil de ler, geralmente utilizado em consultas mais simples. O HAVING é útil para filtrar resultados após as agregações, o que facilita a manutenção do código.
WITH seguido de GROUP BY e WHERE pode deixar consultas complexas mais organizadas, dividindo a lógica em partes menores. Em alguns casos, a performance pode variar dependendo de como o BigQuery otimiza a consulta, mas na maioria das vezes a diferença de custo e tempo é pequena.
O BigQuery cobra com base na quantidade de dados processados. Se as duas consultas processam a mesma quantidade de dados e retornam os mesmos resultados, o custo será semelhante. Vale sempre testar com seus dados, pois a estrutura e complexidade podem impactar o desempenho.
Espero ter esclarecido.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços e bons estudos!