ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시간값 필터필(타임스탬프,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
Designed by Tistory.