Trilha Júnior Trilha

ActiveRecord: fundamentos de CTE

O curso trata das Common Table Expressions não recursivas no Postgres e de como o ActiveRecord as monta. Começa pelo SQL que uma cláusula WITH gera e segue para ActiveRecord::Relation#with, com o aviso de injeção da documentação sobre strings cruas em Arel.sql. Mostra que definir uma CTE não tem efeito até que .from ou .joins a referencie pelo nome. As aulas seguintes fazem join com uma CTE de matrículas agrupadas, montam uma CTE a partir de outra e usam EXPLAIN para testar a ideia de barreira de otimização no PostgreSQL 12 em diante.

O que você vai aprender

  • ✓Como o WITH dá nome a uma subquery durante uma instrução
  • ✓Montar CTEs com ActiveRecord::Relation#with e o risco de injeção do Arel.sql
  • ✓Ligar uma CTE à query com .from ou .joins
  • ✓Fazer join com uma CTE montada a partir de dados agrupados
  • ✓Encadear CTEs e a regra de ordem que o Postgres impõe
  • ✓Ler planos do EXPLAIN para CTEs inline e com MATERIALIZED
Prévia grátis · Aula 1 3 min de leitura

WITH: dando um nome pra uma subquery que dá pra reaproveitar

SQL: agregações usou GROUP BY com HAVING para ficar só com os grupos acima de um limite, como os cursos com mais de uma matrícula. Escrito como subquery, esse resultado é calculado uma vez e jogado fora assim que a query de fora termina. O Postgres consegue calcular a mesma subquery e dar um nome a…

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...