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?
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!