Challenge & Study 데이터 분석

Postgre SQL - VIP 확인 본문

데이터 분석 - Postgre SQL/실습하자

Postgre SQL - VIP 확인

Factful_Day 2020. 7. 10. 23:28

# 구동 환경 : Postgre SQL 12.3 설치 -> pgAdmin4에서 아래 DB 연동 -> DBeaver 7.1.2 버전에서 코딩 진행

# 활용하는 DB = dvdrental.tar

(Link : http://www.postgresqltutorial.com/wp-content/uploads/2017/10/dvdrental.zip)

PAYMENT 테이블에서 단일 거래의 AMOUNT의 액수가 가장 많은 고객들의 CUSTOMER_ID를 추출 해보겠습니다. 단, CUSTOMER_ID의 값을 유일합니다.

  SELECT
         AMOUNT
        ,CUSTOMER_ID
    FROM
         PAYMENT
ORDER BY AMOUNT DESC; -- AMOUNT 컬럼 내림차순 정렬로 액수가 가장 많은 고객 확인

확인해보니 AMOUNT(금액)이 11.99가 제일 높은걸 알 수 있습니다.

SELECT DISTINCT ON (CUSTOMER_ID) -- CUSTOMER_ID의 중복값 제거
        AMOUNT
       ,CUSTOMER_ID
  FROM
        PAYMENT
  WHERE
        AMOUNT >= 11; -- 금액 최대값이 11.99이므로 조건 설정

중복을 제거하고 최대값 유저들의 리스트를 출력했습니다.

혹은 아래 방식으로도 확인이 가능합니다.

SELECT DISTINCT
        A.CUSTOMER_ID          -- CUSTOMER_ID의 중복값 제거
   FROM
        PAYMENT A              -- PAYMENT 테이블 확인
  WHERE A.AMOUNT =(            -- AMOUNT 최대값 구하기
        SELECT A.AMOUNT        -- AMOUNT 컬럼 확인
        FROM  PAYMENT A        -- PAYMENT 테이블 확인
        ORDER BY A.AMOUNT DESC -- AMOUNT 내림차순 정렬
        LIMIT 1);              -- 1개 값만 출력

동일한 CUSTOMER_ID가 출력되었습니다.

다음에는 다른 연습문제를 풀어보도록 하겠습니다.