Introdução
Subtrair valores é uma operação fundamental em qualquer banco de dados SQL, incluindo o SQLite. Entender como fazer subtrações e usá-las nas suas consultas pode melhorar muito a manipulação e a análise de dados. Este guia quer desmistificar a subtração no SQLite, com exemplos claros e explicando a lógica por trás deles. Seja para refinar dados financeiros, calcular diferenças de tempo ou só fazer contas, dominar a subtração no SQLite vai levar seu SQL a outro nível.
Noções básicas de subtração no SQLite
O SQLite, como outros bancos de dados SQL, suporta as operações aritméticas básicas: adição, subtração, multiplicação e divisão. Com o operador -, você subtrai facilmente um valor de outro.
Subtração simples
-- Subtracting two numbers
SELECT 10 - 5 AS difference;
Saída esperada
difference
----------
5
Subtraindo colunas
Num cenário mais prático, você pode querer subtrair uma coluna de outra. Isso é simples no SQLite.
-- Assuming a table 'financials' with columns 'revenue' and 'expenses'
SELECT revenue, expenses, revenue - expenses AS profit FROM financials;
Esta consulta calcula o lucro subtraindo as despesas da receita em cada linha da tabela financials.
Técnicas avançadas de subtração
A subtração não se limita à aritmética simples. Ela pode fazer parte de expressões mais complexas, incluindo as que envolvem datas e horários.
Trabalhando com datas
O SQLite permite subtrair uma data de outra para obter a diferença em dias. Para isso, porém, é preciso usar a função julianday, que converte uma data em um número de dia juliano. Subtrair esses números retorna a diferença em dias.
CREATE TABLE events (
title TEXT,
start DATE,
end DATE);
INSERT INTO events VALUES('Tech Conference', '2024-02-28', '2024-03-02');
Para obter a duração do evento:
SELECT title, julianday(end) - julianday(start) AS 'duration'
FROM events;
Saída esperada:
Tech Conference 2.0
Subtração condicional com CASE
Você pode fazer subtrações condicionais usando a instrução CASE. Isso é útil para cálculos mais elaborados que dependem de certas condições.
-- Assuming a table 'orders' with columns 'quantity' and 'discount_applied'
SELECT quantity, discount_applied,
CASE
WHEN discount_applied THEN quantity - 1
ELSE quantity
END AS final_quantity
FROM orders;
Este exemplo desconta um da quantidade se um desconto foi aplicado, mostrando como subtrair valores de forma condicional.
Casos de uso práticos
Calculando a idade
Um caso de uso comum é calcular a idade de alguém com base na data de nascimento.
SELECT name, birthdate,
(strftime('%Y', 'now') - strftime('%Y', birthdate)) - (strftime('%m-%d', 'now') < strftime('%m-%d', birthdate))
AS age
FROM people;
Esta consulta calcula a idade subtraindo o ano de nascimento do ano atual e ajustando o resultado se hoje for antes do aniversário da pessoa neste ano.
Relatórios financeiros
A subtração é essencial em relatórios financeiros, por exemplo, para calcular a variação mensal das despesas.
-- Assuming a table 'monthly_expenses' with columns 'month' and 'amount'
SELECT month,
amount - LAG(amount) OVER (ORDER BY month) AS monthly_change
FROM monthly_expenses;
Este exemplo usa a função de janela LAG para subtrair as despesas do mês anterior das do mês atual, mostrando o poder da subtração na análise financeira.
Conclusão
A subtração no SQLite é uma ferramenta versátil no seu kit de SQL. Da aritmética básica à lógica condicional complexa e à manipulação de datas, saber usar a subtração de forma eficaz pode revelar insights mais profundos sobre seus dados. Lembre-se: a prática leva à perfeição. Experimente esses exemplos e incorpore a subtração nas suas consultas SQL para ver como ela pode melhorar suas análises e relatórios.
Beekeeper Studio é um cliente de banco de dados gratuito e open source
A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit
O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários dizem sobre o Beekeeper Studio
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e faz o trabalho com banco de dados voltar a ser agradável."
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."