sql 3

SQL 문제풀이 (2) GROUP BY와 HAVING - 집계, 그룹별 조건

"카테고리별 매출 합계", "고객별 주문 횟수"처럼 그룹마다 숫자를 내는 일은 분석에서 늘 나온다. 이때 쓰는 게 GROUP BY와 집계 함수. 이번 글은 GROUP BY의 구조와 HAVING을 정리하고, 문제 세 개를 직접 풀어 본다. 1. GROUP BY 개념 정리 : GROUP BY - 지정한 열의 값이 같은 행끼리 묶어, 그룹마다 한 줄로 집계함: 집계 함수 - 묶인 그룹에 적용함 (COUNT 개수, SUM 합, AVG 평균, MAX/MIN 최대/최소): SELECT에는 "그룹 기준 열"과 "집계 함수"만 올 수 있음 - 그 외 열을 그냥 넣으면 안 됨: 그룹 기준이 여러 개면 열을 쉼표로 나열함 (조합마다 한 그룹) 2. WHERE와 HAVING의 차이 조건을 거는 자리가 두 군데라 헷갈리기..

SQL 문제풀이 (1) JOIN - INNER, LEFT, 자기조인

데이터가 여러 표에 나뉘어 있으면 JOIN으로 이어 붙여야 함. 이번 글은 JOIN의 종류를 정리하고, 자주 나오는 문제 세 개를 직접 풀어 본다. 1. JOIN 개념 정리 : JOIN - 공통 열(키)을 기준으로 두 표의 행을 옆으로 이어 붙이는 것 : INNER JOIN - 양쪽에 다 있는 키만 남김 (교집합) : LEFT JOIN - 왼쪽 표는 전부 남기고, 오른쪽에 짝이 없으면 NULL로 채움 : RIGHT JOIN - 반대로 오른쪽 표를 전부 남김 : FULL OUTER JOIN - 양쪽을 모두 남김 (합집합) 2. 예제 테이블 두 표를 놓고 문제를 풀어 봄. : customers(고객) - id, name : orders(주문) - id, customer_id, amount 3. ..

데이터 분석 (3) SQL 윈도우 함수 정리 - RANK, LAG/LEAD, 누적합

집계를 하다 보면 "그룹별 합계는 구했는데, 원래 행은 그대로 두고 싶다"는 상황이 자주 생긴다. GROUP BY로는 잘 안 되는 이 일을 깔끔하게 해 주는 게 윈도우 함수다. 이번 글은 윈도우 함수의 구조와 자주 쓰는 세 갈래를 정리한다. 1. GROUP BY와 무엇이 다른가 : GROUP BY는 여러 행을 하나로 뭉쳐서, 그룹마다 한 줄만 남김 : 윈도우 함수는 행을 그대로 두면서, 각 행 옆에 집계값을 새 컬럼으로 붙임 : 그래서 "전체 평균 대비 이 행의 값"처럼, 개별 행과 집계를 함께 보고 싶을 때 씀 2. 기본 구조: OVER : 윈도우 함수는 집계 함수 뒤에 OVER 절을 붙이는 형태임 - 예: AVG(price) OVER (...) 1) PARTITION BY - 어떤 기준으로 ..