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 comment

  • HAVING : GROUP BY에 대한 조건을 위해 사용한다

    • WHERE 를 사용하지 않는 이유

      • WHEREGROUP BY 이전에 먼저 적용되기 때문에 올바른 데이터가 불러와지지 않는다.

      • GROUP BY 이후에 조건이 적용되어야 하며 WHEREGROUP BY 앞에 항상 와야 하므로 그 대신 HAVING 을 사용한다

  • AS : 특정 데이터의 이름을 사용자가 정의할 때 사용

조건문

CASE

  • CASE ~ END : 조건을 통해 데이터 컬럼을 재생성 할 때 사용한다

    • WHEN : 조건을 명시한다. 논리 연산자 ANDOR 를 사용할 수 있다

    • THEN : 조건을 만족하면 데이터를 정의한다

    • ELSE : 모든 조건을 만족하지 않는 데이터를 정의한다

테이블 피봇

  • 데이터를 요약하는 표를 생성하는 일

Last updated