반응형
아래와 같은 데이터가 존재할 때
2022년 1월의 순수익을 구려면
SELECT * FROM transactions
WHERE
created_at >= '2022-01-01'
AND
created_at < '2022-02-01';
timestamptz 타입인 경우 ''varchar 형태로 들어가는 것인지 명확하게는 모르겠으나, '' 사이로 지정해야함
해당 쿼리로 조회 한경우 리스트를 확인하고
SELECT SUM(amount) FROM transactions
WHERE
created_at >= '2022-01-01'
AND
created_at < '2022-02-01';
SUM 펑션을 통해 거래합계를 조회함
여기서 created_at 등혹 기호가 아닌 EXTRACT 함수를 사용하면
SELECT SUM(amount) FROM transactions
WHERE
EXTRACT(YEAR FROM created_at) = 2022
AND
EXTRACT(MONTH FROM created_at) = 01;
동일한 결과가 나온다.
EXTRACT()함수의 경우 시간값에서 특정 속성을 숫자로 추출하는 함수로
EXTRACT(YEAR)를 사용한 경우 오늘을 기준으로 하여 표현하면 2022 가 나오고
EXTRACT(MONTH)를 사용한 경우 05가 노출된다.
2022년 1월과 2월의 입금금액만 추출한다고 하면
SELECT *
FROM transactions
WHERE
amount >= 0
AND
EXTRACT(YEAR FROM created_at) = 2022
AND
(
EXTRACT(MONTH FROM created_at) = 01
OR
EXTRACT(MONTH FROM created_at) = 02
);
요렇게 나오고 * 대신 SUM(amoutn)를 이용하면 조회가 된다.
반응형
'TECH' 카테고리의 다른 글
나머지를 구하는 방법 SQL (0) | 2022.05.25 |
---|---|
TO_CHAR() (0) | 2022.05.24 |
통계 실습을 위한 SQL (0) | 2022.05.17 |
🌟 BlackDog캠핑 조명LED감성 조명BD-LYD006 🌟최대 350h사용가능-무료배송 (0) | 2022.05.17 |
Postgres 데이터 필터링 (0) | 2022.05.16 |