-
시간값 필터필(타임스탬프,extract,to_char)DB/Postgresql(DB) 2023. 11. 27. 16:13더보기
-- 전체 조회
SELECT
*
FROM
transactions
;
-- A. 거래 내역의 총합은?
SELECT
SUM(amount) -- amunt 컬럼의 총합을 계산
FROM
transactions
;
-- B. 최대 거래 금액과 최저 거래 금액은?
SELECT
MAX(amount), -- 최대 거래 금액
min(amount) -- 최소 거래 금액
FROM
transactions
;
-- C. “Google”과 거래한 총 횟수는?
SELECT -- 3
COUNT(*)
FROM -- 1
transactions
WHERE
msg = 'Google' -- 2
;
-- D. 거래 내역의 평균 금액은?
SELECT
ROUND(AVG(amount),2) -- 평균값 계산 후, 소수점 이하 둘째자리에서 반올림
FROM
transactions
;
-- E. 거래 메시지 목록을 중복되지 않게 추출하면?
SELECT
DISTINCT(msg) -- 중복을 제거하여, 고유한 값을 추출!
FROM
transactions
;
-- F. 거래 내역의 입금 총액은?
SELECT
sum(amount) -- 2
FROM
transactions
where
amount > 0 -- 1
;
-- 2022년 1월의 순수익(이체 총합)은?
SELECT
sum(amount) -- 2
FROM
transactions
WHERE -- 1
created_at >= '2022-01-01'
AND
created_at < '2022-02-01'
;
-- 2021년 12월의 순수익은?
SELECT
SUM(amount)
FROM
transactions
WHERE
-- EXTRACT(): 시간값에서 특정 속성을 숫자로 추출!
-- 2021-12-01 10:00:21+09 => YEAR(2021)
-- 2021-12-01 10:00:21+09 => MONTH(12)
EXTRACT(YEAR FROM created_at) = 2021
AND
EXTRACT(MONTH FROM created_at) = 12
;
-- 2021년 11월의 순수익은?
SELECT
SUM(amount)
FROM
transactions
WHERE
-- TO_CHAR(): 특정값을 다양한 형식 문자로 바꿔!
-- 2021-12-01 10:00:21+09 => '2021-11'
TO_CHAR(created_at, 'YYYY-MM') = '2021-11'
-- 2021년 11월과 2022년 1월의 총 순수익은?
SELECT
SUM(amount)
FROM
transactions
WHERE
TO_CHAR(created_at, 'YYYY-MM') = '2021-11'
OR
TO_CHAR(created_at, 'YYYY-MM') = '2022-01'
;
-- 2021년 11월부터~2022년 1월까지의 총 지출은?
SELECT
SUM(amount)
FROM
transactions
WHERE
TO_CHAR(created_at, 'YYYY-MM') = '2021-11'
OR
TO_CHAR(created_at, 'YYYY-MM') = '2021-12'
OR
TO_CHAR(created_at, 'YYYY-MM') = '2022-01'
;출저: 홍팍 (https://www.youtube.com/@hongpark)
이 블로그 기록은 개인 공부용 기록입니다.
'DB > Postgresql(DB)' 카테고리의 다른 글
그룹화(Group By 와 집계 함수) (0) 2023.11.28 Join (0) 2023.11.28 primary key & Foreign Key (0) 2023.11.27 WHERE 절 (1) 2023.11.27 DB 구문 기본 ( CRUD) (1) 2023.11.27