
Exemplo de uso de CTE em SQL
Common Table Expressions (CTEs) são uma poderosa funcionalidade do SQL que permite simplificar consultas complexas, dividindo-as em componentes modulares e reutilizáveis. Isso melhora a legibilidade e a manutenção das consultas, tornando o código mais organizado.
As CTEs são definidas com a palavra-chave WITH e podem ser referenciadas várias vezes dentro da consulta principal. Neste post, você aprenderá como usar CTEs com exemplos práticos, incluindo agregações com GROUP BY e filtragem com HAVING.
Legibilidade: Consultas longas tornam-se mais claras ao dividir a lógica em partes menores.
Reutilização: Uma CTE pode ser referenciada várias vezes na mesma consulta, eliminando a necessidade de duplicar código.
Manutenção: Alterações podem ser feitas em um único lugar, refletindo em toda a consulta.
A estrutura básica de uma CTE é a seguinte:
WITH NomeDaCTE AS (
-- Subconsulta aqui
SELECT ...
FROM ...
WHERE ...
)
-- Consulta principal
SELECT ...
FROM NomeDaCTE;
Você tem uma tabela Vendas com as colunas:
ProdutoIDQuantidadePrecoUnitarioQueremos encontrar produtos cujo total de vendas (Quantidade × PreçoUnitário) seja maior que 1000.
WITH VendasTotais AS (
SELECT
ProdutoID,
SUM(Quantidade * PrecoUnitario) AS TotalVendas
FROM Vendas
GROUP BY ProdutoID
)
SELECT
ProdutoID,
TotalVendas
FROM VendasTotais
WHERE TotalVendas > 1000;
Explicação:
VendasTotais calcula o total de vendas por produto.
Você pode definir várias CTEs ao mesmo tempo e utilizá-las na consulta principal.
Cenário:
Dado o exemplo anterior, queremos incluir uma tabela de produtos (Produtos) para obter os nomes dos produtos cujas vendas totais excedam 1000.
Consulta:
WITH VendasTotais AS (
SELECT
ProdutoID,
SUM(Quantidade * PrecoUnitario) AS TotalVendas
FROM Vendas
GROUP BY ProdutoID
),
ProdutosFiltrados AS (
SELECT
p.NomeProduto,
v.TotalVendas
FROM VendasTotais v
INNER JOIN Produtos p ON p.ProdutoID = v.ProdutoID
WHERE v.TotalVendas > 1000
)
SELECT
NomeProduto,
TotalVendas
FROM ProdutosFiltrados;
Explicação:
VendasTotais).ProdutosFiltrados) faz o join com a tabela Produtos e aplica o filtro.
CTEs são uma excelente ferramenta para organizar e simplificar suas consultas SQL. Elas permitem estruturar seu código de maneira mais limpa, facilitando a colaboração e manutenção.
Teste o uso de CTEs em suas consultas SQL e veja como elas podem transformar a maneira como você trabalha com dados. 😊
💬 Sua opinião importa!
Adoramos ouvir nossos leitores! Tem alguma dúvida, sugestão ou experiência para compartilhar sobre o tema?
Deixe seu comentário abaixo! 📣
Vamos conversar e aprender juntos! 🚀
💻 Compartilhe o post com outras pessoas se ele te ajudou! 😊
📚 Obrigado por acompanhar até aqui! Explore outros posts relacionados no blog e continue evoluindo suas habilidades. Tem mais conteúdos sobre diversos assuntos te esperando! 👩💻 🔍✨
Até o próximo post. Valeu! 👋📖
#SQL #CTE #ConsultasSQL #Desenvolvimento
#BancoDeDados #Programação #Tech #DicasSQL
#GiovaniDaCruz
Quer deixar suas descrições no Firebird com a primeira letra de cada palavra em maiúsculo? Veja como criar uma função interna (Internal Function) compatível com o Firebird 5 que formata textos automaticamente, incluindo suporte a acentuação e caracteres especiais.
Aprenda como usar a função SUBSTRING no SQL Server com exemplos práticos para extrair partes de uma string em suas consultas SQL.
Aprenda a calcular a idade diretamente no Firebird SQL com uma query simples e eficiente. Ideal para sistemas que armazenam datas de nascimento, como CRMs, ERPs, escolas e clínicas. Evite lógicas na aplicação e melhore a performance com essa dica prática!
Este artigo aborda como resolver problemas comuns ao trabalhar com campos XML no SQL Server utilizando Delphi e ADO. Ele oferece soluções práticas para garantir o correto mapeamento e manipulação desses dados, melhorando a integração entre o Delphi e o banco de dados SQL Server.
Principais Wildcards no SQL % – Representa zero ou mais caracteres. Uso comum: Localizar palavras que começam, terminam ou contêm determinado texto. _ – Representa exatamente um caractere. Uso comum: Busca por palavras que seguem um padrão específico de comprimento. [ ] – Define um conjunto de caracteres permitidos. Uso comum: Busca […]
SQL Injection é uma das vulnerabilidades mais comuns e perigosas em aplicações web que utilizam bancos de dados. Essa técnica de ataque permite que um invasor insira comandos SQL maliciosos em campos de entrada de dados de uma aplicação, explorando falhas na validação ou sanitização das informações antes que sejam processadas no banco de […]
NoSQL é uma categoria de bancos de dados que se destaca por sua flexibilidade e escalabilidade, tornando-se uma alternativa poderosa aos tradicionais bancos de dados relacionais. Um dos mais populares entre os bancos NoSQL é o MongoDB, conhecido por sua simplicidade e desempenho em aplicações modernas. O que é NoSQL? NoSQL significa “Not […]
No desenvolvimento de sistemas, a exclusão de registros de banco de dados é uma tarefa comum. No entanto, existem cenários em que, por razões de auditoria, recuperação de dados ou até mesmo por precaução, você pode não querer excluir fisicamente os dados de uma tabela. É aí que entra o conceito de soft delete. […]
O banco de dados Firebird oferece uma forma poderosa de manipular datas e realizar cálculos diretamente no SQL. Entre as funcionalidades disponíveis, calcular o dia do ano de uma data é algo que pode ser feito utilizando a função EXTRACT. Neste artigo, explicaremos como isso funciona, mostraremos exemplos práticos e discutiremos ajustes necessários para […]
Criar um banco de dados eficiente é uma etapa crucial para o sucesso de qualquer sistema. Além de garantir desempenho e escalabilidade, um banco bem projetado facilita a manutenção e evita problemas futuros. Confira as 5 dicas essenciais para garantir um banco de dados eficiente: 1. Entenda a Necessidade do Usuário Final O […]