🧚 잠깐만요! Beekeeper Studio는 빠르고 모던한 오픈 소스 PostgreSQL GUI예요 다운로드
2024년 8월 7일 작성자: Matthew Rathbone

PostgreSQL은 다양한 숫자 데이터 타입에 대해 뺄셈(-)을 포함한 기본 산술 연산자를 지원해요.

계속 읽으시기 전에, 저희가 만든 모던하고 빠른 PostgreSQL 데이터베이스 관리 도구인 Beekeeper Studio를 소개해 드리고 싶어요. 자동 완성 SQL 편집기로 이런 계산을 빠르게 시도해 볼 수 있고, PostgreSQL용은 무료로 사용할 수 있어요. 여기서 다운로드하세요.

첫 번째 예제는 간단해요. 두 정수를 빼는 거예요. 이 방법은 PostgreSQL뿐 아니라 모든 SQL 기반 데이터베이스에서 동작해요.

SELECT 15 - 5 AS result;

예상 결과:

result
10

컬럼 빼기

이제 한 컬럼에서 다른 컬럼을 빼는 방법을 살펴볼게요. 다음과 같은 구조의 판매 테이블 sales가 있다고 해 볼게요:

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

할인이 적용된 최종 가격을 구하고 싶다면, 가격에서 할인액을 빼면 돼요.

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

예상 결과:

id item final_price
1 A 80
2 B 150

날짜 빼기

PostgreSQL에서 날짜끼리 빼면 두 날짜 사이의 차이를 일 단위로 반환해요.

다음과 같은 rentals 테이블이 있다고 해 볼게요:

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

대여 기간을 계산해 볼게요:

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

예상 결과:

id item rental_duration
1 Bike 9
2 Car 10

타임스탬프 빼기

PostgreSQL에서 타임스탬프끼리 빼면 두 타임스탬프 사이의 interval을 얻을 수 있어요.

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

각 세션의 지속 시간을 계산해 볼게요:

SELECT id, logout_time - login_time as session_duration FROM logins;

예상 결과:

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

실전 활용 사례

재고 관리

전체 재고에서 판매된 수량을 빼서 각 제품의 가용 재고를 계산하는 예제예요.

다음과 같은 구조의 inventory 테이블이 있다고 가정해 볼게요:

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

샘플 데이터:

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

쿼리: 가용 재고 계산

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

예상 결과:

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

이 쿼리에서는 total_stock에서 sold 수량을 빼서 각 제품의 available_stock을 구해요.

나이 계산

PostgreSQL의 age 함수는 두 날짜 사이의 차이를 계산해서, 연·월·일을 포함하는 복합 interval 타입으로 결과를 반환해요.

테이블에 있는 고객의 나이를 계산하고 싶을 때 쓸 수 있는 실전 예제예요.

birthdate 컬럼이 있는 customers 테이블이 있다고 해 볼게요.

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

예상 결과:

 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

마무리

PostgreSQL의 뺄셈은 숫자, 날짜, interval에 두루 쓸 수 있는 다재다능한 도구예요. 이 글에서는 숫자와 날짜를 모두 다루며 PostgreSQL의 뺄셈 연산을 살펴봤어요. 계산할 때는 항상 데이터 타입을 확인하고 호환되는지 꼭 점검하세요. 고급 SQL 개념을 더 깊이 다룰 다음 시리즈도 기대해 주세요. 즐거운 코딩 되세요!

함께 읽으면 좋은 글:

Beekeeper Studio는 무료 오픈 소스 PostgreSQL GUI예요

제가 찾던 바로 그 PostgreSQL 클라이언트예요! UI가 차별점이에요. 깔끔하고 직관적이면서 강력해요. 투박한 PGAdmin이여, 안녕. - David Cyprian

Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 PostgreSQL 클라이언트예요. 다른 데이터베이스도 많이 지원하고, Windows, Mac, Linux에서 잘 작동해요.

Beekeeper의 Linux 버전은 100% 모든 기능을 갖추고 있어요. 대충 만든 부분도, 빠진 기능도 없어요.

PostgreSQL 사용자들의 Beekeeper Studio 후기

Jay Simons Jay Simons Designly.biz 대표

pgAdmin과 달리 Beekeeper는 놀라울 만큼 사용하기 쉬우면서도 기능이 부족하지 않아요. 가격도 적당하고요! 특히 데이터베이스 백업 기능이 유용해요. 정말 훌륭한 소프트웨어예요.

Alex M

정말 멋진 도구예요. 지금까지 써 본 Postgres와 MySql DB 관리용 IDE 중 가장 실용적이에요. 번거로움 없이 그냥 잘 작동해요 :-)

PostgreSQL 작업 방식을 개선할 준비가 되셨나요?

download 무료 다운로드