Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- PostgreSQL
- DBeaver
- 판다스
- PANDAS
- where
- Analysis
- VIP
- 크몽
- 중복제거
- 데이터분석
- analyze
- Postgre SQL
- Kmong
- not like
- 파이썬
- Between
- Noom
- not null
- data
- DS School
- fetch
- visualiazion
- 데이터 분석
- 데이터 전처리
- distinct
- SQL
- Python
- DS스쿨
- like
- 눔
Archives
- Today
- Total
Challenge & Study 데이터 분석
Postgre SQL - IN 연산자 본문
# 구동 환경 : 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)
IN 연산자는 특정 집합(컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 연산자입니다.
SELECT
CUSTOMER_ID -- 컬럼 선택
,RENTAL_ID -- 컬럼 선택
,RETURN_DATE -- 컬럼 선택
FROM RENTAL -- 테이블 선택
WHERE
CUSTOMER_ID IN (1,2) -- CUSTOMER_ID가 1 혹은 2인 행을 출력
ORDER BY RETURN_DATE DESC; -- 그 결과를 RETURN_DATE 컬럼 내림차순으로 출력
결과가 잘 출력되었습니다.
이번에는 동일한 결과를 IN 대신 OR를 활용해 확인해보겠습니다.
SELECT
CUSTOMER_ID -- 컬럼 선택
,RENTAL_ID -- 컬럼 선택
,RETURN_DATE -- 컬럼 선택
FROM RENTAL -- 테이블 선택
WHERE
CUSTOMER_ID = 1 -- CUSTOMER_ID가 1
OR CUSTOMER_ID = 2 -- 혹은 2인 행을 출력
ORDER BY RETURN_DATE DESC; -- 그 결과를 RETURN_DATE 컬럼 내림차순으로 출력
동일한 결과가 나왔습니다.
이번에는 NOT을 활용하여 다른 방식으로 진행해보겠습니다.
SELECT
CUSTOMER_ID -- 컬럼 선택
,RENTAL_ID -- 컬럼 선택
,RETURN_DATE -- 컬럼 선택
FROM RENTAL -- 테이블 선택
WHERE
CUSTOMER_ID NOT IN (1,2) -- CUSTOMER_ID가 1이 아니고 2도 아닌 행을 출력
ORDER BY RETURN_DATE DESC; -- 그 결과를 RETURN_DATE 컬럼 내림차순으로 출력
위 결과를 IN 연산자와 다른 방식으로 다시 진행해보겠습니다.
SELECT
CUSTOMER_ID -- 컬럼 선택
,RENTAL_ID -- 컬럼 선택
,RETURN_DATE -- 컬럼 선택
FROM RENTAL -- 테이블 선택
WHERE
CUSTOMER_ID <> 1 -- CUSTOMER_ID가 1이 아니고
AND CUSTOMER_ID <> 2 -- 2도 아닌 행을 출력
ORDER BY RETURN_DATE DESC; -- 그 결과를 RETURN_DATE 컬럼 내림차순으로 출력
동일한 결과가 출력되었습니다.
이번에는 서브 쿼리를 활용하여 진행해보겠습니다.
SELECT
CUSTOMER_ID -- 컬럼 선택
,RETURN_DATE -- 컬럼 선택
FROM
RENTAL -- 테이블 선택
WHERE
CAST (RETURN_DATE AS DATE) = '2005-05-27'; -- RETURN_DATE가 2005년 5월 27일인 CUSTOMER_ID를 출력
위 조건을 가지고 IN연산자를 활용해보겠습니다.
SELECT
FIRST_NAME
,LAST_NAME
FROM
CUSTOMER
WHERE CUSTOMER_ID IN( -- return_date가 2005년 5월 27일 CUSTOMER_ID의
SELECT -- FIRST_NAME과 LAST_NAME을 출력
CUSTOMER_ID
FROM
RENTAL
WHERE
CAST (RETURN_DATE AS DATE) = '2005-05-27');
-- RETURN_DATE가 2005년 5월 27일인 CUSTOMER_ID를 출력
이런식으로 다른 테이블에 있는 값도 조건을 주고 불러올 수 있습니다,
다음에는 BETWEEN 연산자에 대해서 보도록 하겠습니다.
'데이터 분석 - Postgre SQL > 정리하자' 카테고리의 다른 글
Postgre SQL - LIKE 연산자 (0) | 2020.07.10 |
---|---|
Postgre SQL - BETWEEN 연산자 (0) | 2020.07.10 |
Postgre SQL - Fetch 절 (0) | 2020.07.06 |
Postgre SQL - Limit 절 (0) | 2020.07.06 |
Postgre SQL - Where 절 (0) | 2020.07.06 |