Imagem do autor
No mundo dos dados, o SQL ainda é a língua franca para interagir com bancos de dados.
Ainda hoje é uma das linguagens mais utilizadas para lidar com dados e ainda é considerada obrigatória para qualquer bom profissional de dados.
No entanto, qualquer pessoa que tenha trabalhado com consultas SQL complexas sabe que elas podem rapidamente se transformar em feras pesadas – difíceis de ler, manter ou reutilizar.
É por isso que hoje não basta saber SQL, precisamos ser bons em elaborar consultas. E isso é na verdade um tipo de arte.
É aqui que as Common Table Expressions (CTEs) entram em ação, transformando a arte de escrever consultas em uma arte mais estruturada e acessível.
Então, vamos descobrir juntos como codificar consultas legíveis e reutilizáveis.
Se você está se perguntando o que é um CTE, você está no artigo certo.
Uma Expressão de Tabela Comum (CTE) é um conjunto de resultados temporário definido no escopo de execução de uma única instrução SQL.
São tabelas temporais que podem ser referenciadas muitas vezes em uma única consulta e normalmente são usadas para simplificar junções e subconsultas complexas, com o objetivo final de aumentar a legibilidade e a organização do código SQL.
Portanto, eles são uma ferramenta poderosa para dividir consultas complexas em partes mais simples.
Veja por que você deve considerar o uso de CTEs:
- Modularidade: Você pode dividir a lógica complexa em partes legíveis.
- Legibilidade: Facilita a compreensão do fluxo de consultas SQL.
- Reutilização: Os CTEs podem ser referenciados diversas vezes em uma única consulta, evitando repetições.
A mágica começa com a cláusula WITH, que precede sua consulta principal e define diferentes tabelas temporais (CTEs) com aliases.
Portanto, sempre precisamos iniciar nossa consulta com o comando “WITH” para começar a definir nossos próprios CTEs. Ao usar CTEs, podemos dividir qualquer consulta SQL complexa em:
– Pequenas tabelas temporais que calculam variáveis relacionadas.
– Uma tabela final que leva apenas as variáveis que queremos como saída.
E esta é precisamente a abordagem MODULAR que queremos em qualquer código!
Imagem do autor
Portanto, usar CTEs em nossas consultas nos permite:
– Execute uma tabela temporal UMA VEZ e faça referência a ela MÚLTIPLAS vezes.
– Melhore a legibilidade e simplifique a lógica complexa.
– Promova a reutilização de código e o design modular.
Para entender melhor isso, podemos dar um exemplo prático de anúncios do Airbnb em Barcelona.
Imagine que queremos analisar o desempenho dos anúncios por bairro e compará-lo com o desempenho geral da cidade. Você precisaria reunir informações sobre bairros, apartamentos individuais, anfitriões e preços.
Para exemplificar isso, usaremos o Por dentro do Airbnb tabela de Barcelona, que se parece com isto:
Uma abordagem ingênua pode levar você a criar subconsultas aninhadas que rapidamente se tornam um pesadelo de manutenção como a seguinte:
Código por Autor
Em vez disso, podemos utilizar CTEs para compartimentar nossa consulta em seções lógicas – cada uma definindo uma peça do quebra-cabeça.
- Dados do bairro: Crie um CTE para resumir os dados por bairro.
- Informações sobre apartamento e anfitrião: Defina CTEs para obter detalhes sobre apartamentos e anfitriões.
- Métricas em toda a cidade: Outro CTE para reunir estatísticas em nível de cidade para comparação.
- Assembléia final: Combine os CTEs em uma instrução SELECT final para apresentar os dados de forma coesa.
Imagem do autor
E terminaríamos com a seguinte consulta:
Código por Autor
Ao usar CTEs, transformamos uma consulta única potencialmente monstruosa em um conjunto organizado de módulos de dados. Esta abordagem modular torna o código SQL mais intuitivo e adaptável às mudanças.
Se surgirem novos requisitos, você poderá ajustar ou adicionar CTEs sem revisar toda a consulta.
Depois de estabelecer seus CTEs, você poderá reutilizá-los para realizar análises comparativas. Por exemplo, se quiser comparar dados de bairro com métricas de toda a cidade, você pode referenciar seus CTEs em uma série de operações JOIN.
Isto não só economiza tempo, mas também mantém seu código eficiente, já que você não terá que repetir a mesma consulta duas vezes!
Os CTEs são uma prova do princípio de que um pouco de estrutura ajuda muito na programação. Ao adotar CTEs, você pode escrever consultas SQL mais claras, mais fáceis de manter e reutilizáveis.
Ele agiliza o processo de desenvolvimento de consultas e facilita a comunicação de lógica complexa de recuperação de dados a outras pessoas.
Lembre-se, da próxima vez que você estiver prestes a começar a escrever um monstro de subconsulta aninhada e com múltiplas junções, considere dividi-lo com CTEs.
Seu eu futuro – e qualquer outra pessoa que possa ler seu código – agradecerá.
Joseph Ferrer é um engenheiro analítico de Barcelona. Formou-se em engenharia física e atualmente trabalha na área de Data Science aplicada à mobilidade humana. Ele é um criador de conteúdo em tempo parcial focado em ciência e tecnologia de dados. Você pode contatá-lo em LinkedIn, Twitter or Médio.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://www.kdnuggets.com/sql-simplified-crafting-modular-and-understandable-queries-with-ctes?utm_source=rss&utm_medium=rss&utm_campaign=sql-simplified-crafting-modular-and-understandable-queries-with-ctes
- :tem
- :é
- :não
- :onde
- $UP
- a
- Sobre
- adicionar
- ajustar
- Adotando
- contra
- Airbnb
- permite
- tb
- sempre
- an
- análise
- analítica
- analisar
- e
- Outro
- qualquer
- qualquer um
- apartamentos
- aplicado
- abordagem
- acessível
- SOMOS
- Arte
- artigo
- AS
- Montagem
- At
- evitando
- Barcelona
- BE
- tornam-se
- Melhor
- Break
- Quebra
- mas a
- by
- CAN
- Alterações
- mais claro
- código
- combinar
- como
- comum
- comunicar
- comparar
- comparação
- integrações
- Computar
- Considerar
- considerado
- Contacto
- conteúdo
- artesanato
- crio
- criador
- Atualmente
- dados,
- ciência de dados
- bases de dados
- acordo
- definido
- Define
- definição
- Design
- detalhes
- Desenvolvimento
- diferente
- descobrir
- down
- mais fácil
- eficiente
- outro
- embarcar
- emergem
- final
- engenheiro
- Engenharia
- suficiente
- Todo
- estabelecido
- exemplo
- executar
- execução
- expressão
- expressões
- campo
- final
- Encontre
- fluxo
- focado
- seguinte
- segue
- Escolha
- da
- futuro
- reunir
- meta
- vai
- Bom estado, com sinais de uso
- Ter
- he
- ele
- hospedeiro
- anfitriões
- Como funciona o dobrador de carta de canal
- Como Negociar
- http
- HTTPS
- humano
- if
- melhorar
- in
- aumentando
- Individual
- INFORMAÇÕES
- instância
- interagindo
- para dentro
- intuitivo
- IT
- juntar
- Junta
- jpg
- KDnuggetsGenericName
- Saber
- sabe
- Idiomas
- conduzir
- como
- Anúncios
- pequeno
- lógica
- lógico
- longo
- OLHARES
- mágica
- a Principal
- a manter
- Sustentável
- manutenção
- FAZ
- muitos
- Métrica
- poder
- mobilidade
- modulares
- Módulos
- mais
- a maioria
- múltiplo
- Must-have
- você merece...
- Novo
- Próximo
- of
- on
- uma vez
- ONE
- só
- Operações
- or
- ordem
- organização
- Organizado
- Outros
- A Nossa
- Fora
- saída
- global
- próprio
- peças
- realizar
- atuação
- Física
- peça
- platão
- Inteligência de Dados Platão
- PlatãoData
- Jogar
- potencialmente
- poderoso
- Prática
- justamente
- presente
- preços
- princípio
- processo
- profissional
- Programação
- a promover
- quebra-cabeça
- consultas
- rapidamente
- Leia
- referência
- referenciada
- relacionado
- repetir
- Requisitos
- resultar
- recuperação
- reutilizável
- reutilizar
- certo
- mesmo
- Ciência
- Ciência e Tecnologia
- escopo
- selecionar
- Série
- conjunto
- rede de apoio social
- mais simples
- simplificada
- simplificar
- solteiro
- pequeno
- SQL
- fica
- começo
- Declaração
- estatística
- Ainda
- Simplifica
- estrutura
- estruturada
- resumir
- mesa
- Tire
- toma
- Tecnologia
- temporário
- vontade
- obrigado
- que
- A
- o mundo
- Eles
- deles
- isto
- aqueles
- tempo
- vezes
- para
- hoje
- juntos
- ferramenta
- transformando
- VIRAR
- tipo
- tipicamente
- final
- compreender
- compreensível
- compreensão
- us
- usar
- usava
- utilização
- utilizar
- queremos
- Caminho..
- we
- O Quê
- O que é a
- qual
- QUEM
- porque
- precisarão
- de
- dentro
- sem
- perguntando
- trabalhou
- trabalhar
- mundo
- seria
- escrever
- escrita
- Você
- investimentos
- você mesmo
- zefirnet