Introducción
Restar valores es una operación fundamental en cualquier base de datos SQL, incluida SQLite. Entender cómo hacer restas y usarlas en tus consultas puede mejorar muchísimo la manipulación y el análisis de datos. Esta guía busca desmitificar la resta en SQLite, con ejemplos claros y explicando la lógica detrás de ellos. Ya sea que estés depurando datos financieros, calculando diferencias de tiempo o simplemente haciendo cuentas, dominar la resta en SQLite llevará tu SQL al siguiente nivel.
Conceptos básicos de la resta en SQLite
SQLite, como otras bases de datos SQL, admite las operaciones aritméticas básicas: suma, resta, multiplicación y división. Con el operador - puedes restar fácilmente un valor de otro.
Resta simple
-- Subtracting two numbers
SELECT 10 - 5 AS difference;
Resultado esperado
difference
----------
5
Restar columnas
En un escenario más práctico, quizá quieras restar una columna de otra. En SQLite esto es muy sencillo.
-- Assuming a table 'financials' with columns 'revenue' and 'expenses'
SELECT revenue, expenses, revenue - expenses AS profit FROM financials;
Esta consulta calcula la ganancia restando los gastos de los ingresos en cada fila de la tabla financials.
Técnicas avanzadas de resta
La resta no se limita a la aritmética simple. Puede formar parte de expresiones más complejas, incluidas las que involucran fechas y horas.
Trabajar con fechas
SQLite te permite restar una fecha de otra para obtener la diferencia en días. Sin embargo, para esto necesitas la función julianday, que convierte una fecha en un número de día juliano. Al restar estos números obtienes la diferencia en días.
CREATE TABLE events (
title TEXT,
start DATE,
end DATE);
INSERT INTO events VALUES('Tech Conference', '2024-02-28', '2024-03-02');
Para obtener la duración del evento:
SELECT title, julianday(end) - julianday(start) AS 'duration'
FROM events;
Resultado esperado:
Tech Conference 2.0
Resta condicional con CASE
Puedes hacer restas condicionales con la sentencia CASE. Esto es útil para cálculos más finos que dependen de ciertas condiciones.
-- 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 ejemplo resta uno a la cantidad si se aplicó un descuento, y muestra cómo restar valores de forma condicional.
Casos de uso prácticos
Calcular la edad
Un caso de uso común es calcular la edad de alguien a partir de su fecha de nacimiento.
SELECT name, birthdate,
(strftime('%Y', 'now') - strftime('%Y', birthdate)) - (strftime('%m-%d', 'now') < strftime('%m-%d', birthdate))
AS age
FROM people;
Esta consulta calcula la edad restando el año de nacimiento al año actual y ajustando el resultado si hoy es antes del cumpleaños de la persona en este año.
Reportes financieros
La resta es clave en los reportes financieros, por ejemplo, para calcular la variación mensual de los gastos.
-- 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 ejemplo usa la función de ventana LAG para restar los gastos del mes anterior a los del mes actual, y muestra el poder de la resta en el análisis financiero.
Conclusión
La resta en SQLite es una herramienta versátil en tu caja de herramientas de SQL. Desde la aritmética básica hasta la lógica condicional compleja y el manejo de fechas, saber usar bien la resta te ayuda a descubrir información más profunda en tus datos. Recuerda: la práctica hace al maestro. Experimenta con estos ejemplos e incorpora la resta en tus consultas SQL para ver cómo mejora tu análisis de datos y tus reportes.
Beekeeper Studio es un cliente de bases de datos gratuito y de código abierto
La mejor herramienta de consultas y edición de SQL que he usado. Tiene todo lo que necesito para administrar mi base de datos. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio es rápido, intuitivo y fácil de usar. Es compatible con muchísimas bases de datos y funciona de maravilla en Windows, Mac y Linux.
Lo que dicen los usuarios de Beekeeper Studio
"Beekeeper Studio reemplazó por completo mi antiguo flujo de trabajo con SQL. Es rápido, intuitivo y hace que trabajar con bases de datos vuelva a ser un placer."
"He probado muchas GUI de bases de datos, pero Beekeeper logra el equilibrio perfecto entre funciones y sencillez. Simplemente funciona."