반응형
* SELECT
- 분석가라면 가장 많이 사용하게 될 '조회'
SELECT [Column name],
[Column name],
...
FROM [DB name].[Table name];
- GROUP BY 없이도 집계 함수 사용 가능함
- 모든 결과를 조회하려면 '*'를 사용한다. ex) SELECT * FROM TABLE
- 별칭을 붙여서 컬럼명을 변경 조회할 수 있다. ex) SELECT COLUMN AS A FROM TABLE
- 고유값을 보려면 DISTINCT 사용 ex) SELECT DISTINCT COLUMN FROM TABLE
- WHERE절을 조건절로 사용해서, 조회 조건을 다양하게 가져갈 수 있다.
WHERE 절에 쓸 수 있는 다양한 표현들 | |
BETWEEN | 특정 컬럼의 값이 시작점~끝점인 데이터만 출력 WHERE COLUMN BETWEEN A AND B |
대소관계표현 | = 동일하다, > 초과, >= 이상, < 미만, <= 이하, <> 같지 않다. WHERE COLUMN < A |
IN, NOT IN | 특정 컬럼의 값이 IN 내부에 명시된 값인 데이터만 출력 WHERE COLUMN IN (A, B, ...) |
IS NULL, IS NOT NULL | 특정 값이 비어있는(NULL) 데이터를 출력 WHERE COLUMN IS NULL |
LIKE '%TEXT%' | 특정 텍스트가 포함된 데이터를 출력 WHERE COLUMN LIKE '%TEXT%' : TEXT 포함 WHERE COLUMN LIKE 'TEXT%' : TEXT로 시작 WHERE COLUMN LIKE '%TEXT' : TEXT로 끝 |
- GROUP BY는 컬럼의 값들을 그룹화해 각 값들의 평균값, 개수 등을 구할 때 사용
- GROUP BY는 AVG(), COUNT(), SUM(), MAX(), MIN() 등과 함께 쓸 수 있음
SELECT [Column Name], SUM([Column Name])
FROM [DB Name].[Table Name]
GROUP BY [Column Name]
- CASE WHEN + 집계함수 함께 사용 : 조건에 따라 집계 여부 결정
SELECT [Column Name], SUM(CASE WHEN [Column Name] = A THEN 1 ELSE 0 END) AS COLUMN_CNT
FROM [DB Name].[Table Name]
- JOIN : 여러 테이블로 나뉜 정보를 조합하기 위한 테이블 결합 함수
-- LEFT JOIN(LEFT OUTER JOIN)
SELECT *
FROM TABLE A
LEFT JOIN TABLE B
ON TABLE A.Column 1 = TABLE B.Column 2
-- INNER JOIN
SELECT *
FROM TABLE A
INNER JOIN TABLE B
ON TABLE A.Column 1 = TABLE B.Column 2
-- FULL JOIN
SELECT *
FROM TABLE A
FULL JOIN TABLE B
ON TABLE A.Column 1 = TABLE B.Column 2
- RANK, DENSE_RANK, ROW_NUMBER를 활용해서 순위를 매길 수 있음
구분 | 설명 | 표현 |
ROW_NUMBER() | 동점인 경우도 서로 다른 등수로 계산함 | SELECT ROW_NUMBER() OVER( ORDER BY Column ) FROM ... -- 해당 컬럼 내에서 순위를 매길 때 SELECT ROW_NUMBER() OVER( PARTITION BY Column ORDER BY Column ) FROM ... |
RANK() | 동점인 경우에 같은 등수로 계산함 데이터 세트를 고려해서 다음 등수 계산 |
SELECT RANK() OVER( ORDER BY Column ) FROM ... -- 해당 컬럼 내에서 순위를 매길 때 SELECT RANK() OVER( PARTITION BY Column ORDER BY Column ) FROM ... |
DENSE_RANK() | 동점인 경우에 같은 등수로 계산함 동점이어도 다음 등수를 그 다음 숫자로 |
SELECT DENSE_RANK() OVER( ORDER BY Column ) FROM ... -- 해당 컬럼 내에서 순위를 매길 때 SELECT DENSE_RANK() OVER( PARTITION BY Column ORDER BY Column ) FROM ... |
반응형
'Data Science > SQL' 카테고리의 다른 글
[SQL로 맛보는 데이터 전처리 분석] 자동차 매출 데이터를 이용한 지표 추출(실습) - 1 (0) | 2022.07.11 |
---|---|
[SQL로 맛보는 데이터 전처리 분석] 기본 문법 정리 - 2 (0) | 2022.07.07 |
[SQL] Conceptual Data Modeling (0) | 2022.01.19 |
[SQL] JOIN (0) | 2022.01.10 |
[SQL] SQL / Table / SELECT (0) | 2022.01.10 |
댓글