19 Fri
데이터 분석을 위한 중급 SQL
OT
기초 SQL과 동일
보고싶은 데이터 요약하기
COUNT, SUM, AVG, MIN/MAX
SELECT COUNT(*)
FROM Customers;COUNT
해당 컬럼의 개수를 센다.
만약 NULL 값이 있다면 세지 않는다
EX) Num = [1, 2, 3, 4, NULL] =>
COUNT(Num)=> 4
DISTINCT를 사용해 셀 수도 있다.
EX)
SELECT COUNT(DISTINCT Num)=> 3
SELECT SUM(price)
FROM Products;SUM
데이터들의 총합을 구한다.
AVG
데이터들의 평균을 구한다
이 때 NULL의 개수는 세지 않기 때문에 NULL을 제외한 개수로 나눈 값을 얻게된다.
따라서 AVG() 함수를 쓸지 SUM()/COUNT() 함수를 쓸지를 잘 고려해야 한다
MAX
데이터 중 최댓값을 구한다
MIN
데이터 중 최솟값을 구한다
GROUP BY & HAVING
GROUP BY: 특정 컬럼을 기준으로 데이터를 볼 경우 사용한다특정 SUM을 할 경우 모든 데이터를 찾지는 않는다
일부 데이터만을 조작해서 봐야할 경우가 많다
GROUP BY뒤에 오는 컬럼명은SELECT뒤에도 같이 와야 알아보기가 쉽다SELECT뒤에 오는 순서대로 Index를GROUP BY에 적용할 수 있다EX)
GROUP BY 1, 2=GROUP BY SupplierID, Categoryid그러나 권장하는 문법은 아니다. 컬럼명을 정확하게 밝히는 것이 좋음
--: line comment/* */: block commentHAVING:GROUP BY에 대한 조건을 위해 사용한다WHERE를 사용하지 않는 이유WHERE는GROUP BY이전에 먼저 적용되기 때문에 올바른 데이터가 불러와지지 않는다.GROUP BY이후에 조건이 적용되어야 하며WHERE는GROUP BY앞에 항상 와야 하므로 그 대신HAVING을 사용한다
AS: 특정 데이터의 이름을 사용자가 정의할 때 사용
조건문
CASE

CASE ~ END: 조건을 통해 데이터 컬럼을 재생성 할 때 사용한다WHEN: 조건을 명시한다. 논리 연산자AND나OR를 사용할 수 있다THEN: 조건을 만족하면 데이터를 정의한다ELSE: 모든 조건을 만족하지 않는 데이터를 정의한다
테이블 피봇
데이터를 요약하는 표를 생성하는 일
Last updated