🧚 Escute! O Beekeeper Studio é uma GUI para PostgreSQL rápida, moderna e open source Baixar
7 de agosto de 2024 Por Matthew Rathbone

O PostgreSQL suporta os operadores aritméticos básicos, incluindo a subtração (-), para vários tipos de dados numéricos.

Antes de continuar lendo, queria apresentar o nosso gerenciador de banco de dados PostgreSQL moderno e rápido, o Beekeeper Studio. O editor SQL com autocompletar torna rápido testar esses cálculos, e ele é gratuito para PostgreSQL. Baixe aqui.

Nosso primeiro exemplo é simples: subtrair dois inteiros. Isso funciona em todos os bancos de dados baseados em SQL, não apenas no PostgreSQL.

SELECT 15 - 5 AS result;

Saída esperada:

result
10

Subtraindo colunas

Agora, vamos ver como subtrair uma coluna de outra. Considere uma tabela de vendas sales com a seguinte estrutura:

id item price discount
1 A 100 20
2 B 200 50

Você quer encontrar o custo final após a aplicação do desconto. Para isso, basta subtrair o desconto do preço.

SELECT id, item, price - discount AS Final_Price FROM sales;

Saída esperada:

id item final_price
1 A 80
2 B 150

Subtraindo datas

Subtrair datas no PostgreSQL retorna a diferença entre duas datas em dias.

Considere a tabela rentals a seguir:

id item rent_start_date rent_end_date
1 Bike 2022-03-01 2022-03-10
2 Car 2022-02-20 2022-03-02

Calcule a duração dos aluguéis:

SELECT id, item, rent_end_date - rent_start_date as rental_duration FROM rentals;

Saída esperada:

id item rental_duration
1 Bike 9
2 Car 10

Subtração com timestamps

No PostgreSQL, subtrair timestamps retorna o intervalo entre dois timestamps.

Imagine que temos uma tabela logins:

id login_time logout_time
1 2022-03-15 08:00:00 2022-03-15 10:30:00
2 2022-03-15 07:30:00 2022-03-15 10:00:00

Calcule a duração de cada sessão:

SELECT id, logout_time - login_time as session_duration FROM logins;

Saída esperada:

id session_duration
1 02:30:00
2 02:30:00

Casos de uso práticos

Gestão de estoque

Veja um exemplo de como calcular o estoque disponível de cada produto subtraindo a quantidade de itens vendidos do estoque total.

Suponha que temos uma tabela de estoque com a seguinte estrutura:

CREATE TABLE inventory (
    product_id SERIAL PRIMARY KEY,
    product_name VARCHAR(255),
    total_stock INT,
    sold INT
);

Dados de exemplo:

INSERT INTO inventory (product_name, total_stock, sold) VALUES
('Product A', 100, 50),
('Product B', 200, 180),
('Product C', 150, 140);

Consulta: calculando o estoque disponível

SELECT product_id, product_name, total_stock - sold AS available_stock
FROM inventory;

Saída esperada:

 product_id | product_name | available_stock 
------------+--------------+-----------------
          1 | Product A    |              50
          2 | Product B    |              20
          3 | Product C    |              10

Nesta consulta, subtraímos a quantidade sold de total_stock para obter o available_stock de cada produto.

Calculando idade

A função age do PostgreSQL é usada para calcular a diferença entre duas datas, retornando o resultado como um tipo interval complexo que inclui anos, meses e dias.

Veja um caso de uso prático em que você pode querer calcular a idade dos clientes de uma tabela.

Suponha que você tenha uma tabela customers com uma coluna birthdate.

SELECT customer_id, birthdate, age(current_date, birthdate) AS age
FROM customers;

Saída esperada:

 customer_id | birthdate  |         age          
-------------+------------+----------------------
           1 | 1990-04-25 | 34 years 3 mons 12 days
           2 | 1985-10-12 | 38 years 9 mons 24 days
           3 | 2000-01-01 | 24 years 7 mons  5 days

Conclusão

A subtração no PostgreSQL é uma ferramenta versátil que pode ser aplicada a números, datas e intervalos. Neste artigo, exploramos as operações de subtração no PostgreSQL, lidando tanto com números quanto com datas. Lembre-se de sempre verificar os tipos de dados e garantir a compatibilidade ao realizar cálculos. Fique de olho nos próximos artigos da série, em que vamos nos aprofundar em conceitos avançados de SQL. Bom código!

Outros artigos que você pode gostar:

O Beekeeper Studio é uma GUI para PostgreSQL gratuita e open source

Este é o cliente PostgreSQL que eu estava procurando! A interface é o que o diferencia: limpa, intuitiva e poderosa. Adeus, PGAdmin desajeitado. - David Cyprian

O Beekeeper Studio é um cliente PostgreSQL rápido, intuitivo e fácil de usar. Ele também suporta vários outros bancos de dados e funciona muito bem no Windows, Mac e Linux.

A versão do Beekeeper para Linux tem 100% dos recursos, sem atalhos e sem concessões.

O que os usuários de PostgreSQL dizem sobre o Beekeeper Studio

Jay Simons Jay Simons Proprietário, Designly.biz

Diferente do pgAdmin, o Beekeeper é incrivelmente simples de usar, sem deixar a desejar em recursos – e o preço é justo! O recurso de backup do banco de dados é especialmente útil. Simplesmente um ótimo software.

Alex M

Ferramenta fabulosa, a IDE mais prática que encontrei até hoje para administrar bancos Postgres e MySql - simplesmente funciona, sem complicação :-)

Pronto para melhorar seu fluxo de trabalho com PostgreSQL?

download Baixe grátis