SQL14 SQL 정리 + 오늘의 정보(기획부터 출시까지 흐름 파악) + 오늘의 Q&A SQL 정리조회한 데이터 문제가 있다면?(결측값/이상치(Outlier))+이상치 탐지 방법(IQR, Z-score) : https://mekite.tistory.com/36SQL로 Pivot Table 만들기(+키워드/함수의 역할) : https://mekite.tistory.com/37이전 게시글 보강윈도우 함수(Window Function) - 순위 매기기(RANK() OVER), 반환 행 수 제한하기(LIMIT) : https://mekite.tistory.com/21SQL에서 시간 계산하기(YEAR, CURDATE, DATEDIFF, NOW 등) : https://mekite.tistory.com/15오늘의 정보 ▼ 서비스 설계 및 개발, 서버 배포, 출시 과정 전체 훑어보기 오늘의 Q&A ▼PM.. 2026. 4. 27. SQL로 Pivot Table 만들기(+키워드/함수의 역할) Pivot Table 2개 이상의 기준으로 데이터를 집계하고, 행/열 형태로 재배열하여 보여주는 것(엑셀 피벗 테이블이랑 동일 개념)왜 사용하는가?일반 집계의 경우, 세로로 길게 나옴(원하는 값 확인 불편)피벗 테이블의 경우, 가로로 펼쳐짐(비교 쉬움)구조 이해행(Row) → 집계 기준 (예: 음식점, 나이)열(Column) → 구분 컬럼 (예: 시간, 성별)값(Value) → 집계 데이터 (예: 주문 수)Pivot Table 만드는 2단계 구조Step 1. 집계 테이블 만들기GROUP BY로 기본 데이터 만들기Step 2. Pivot 형태로 변환IF + MAX로 컬럼 펼치기-- 실습 1. 음식점별 시간별 주문건수 Pivot-- 1단계 : 집계SELECT a.restaurant_name, SU.. 2026. 4. 27. 조회한 데이터 문제가 있다면?(결측값/이상치(Outlier))+이상치 탐지 방법(IQR, Z-score) 데이터가 없을 때(결측값)의 연산 결과 변화 케이스 방법1. 없는 값을 연산에서 제외해 주기계산에 사용할 수 없는 값은 NULL로 변환하여 집계에서 제외 → 0으로 간주SQL의 집계 함수(AVG, SUM 등)는 NULL을 자동으로 제외따라서 잘못된 값을 NULL로 바꾸는 것 분석 정확도 중요 → 제외 (NULL 처리) // 예시.SELECT restaurant_name, -- 원본 평균 (문자 포함 시 문제 가능) AVG(rating) average_of_rating, -- 'Not given'은 NULL로 처리 후 평균 계산 AVG(IF(rating 'Not given', rating, NULL)) average_of_rating2FROM food_ordersGROUP.. 2026. 4. 27. JOIN으로 두 테이블 이상 조회하기 JOIN두 개 이상의 테이블을 공통 컬럼(키) 기준으로 결합하여 하나의 결과 테이블처럼 조회하는 SQL 연산-- 기본 문법SELECT aaaFROM table1 A JOIN table2 B ON A.key = B.key; JOIN 종류 - INNER/LEFT/RIGHT INNER JOIN (교집합) : 양쪽 모두 존재하는 데이터만 조회LEFT JOIN(왼쪽 기준) : 왼쪽 테이블은 모두 유지 + 오른쪽은 매칭되는 것만매칭 안 되면 오른쪽 컬럼은 NULLRIGHT JOIN (오른쪽 기준) : 오른쪽 테이블 기준 유지 JOIN 동작 흐름기준 테이블 선택 (FROM)JOIN으로 다른 테이블 붙임ON 조건으로 연결→ 누구를 기준으로 붙여 조회할 것인가 /*실습 1.JOIN 을 이용하여 두 개의 테이블에서 데.. 2026. 4. 26. Window Function - 순위 매기기(RANK() OVER), 반환 행 수 제한하기(LIMIT) 윈도우 함수(Window Function)그룹은 유지하면서, 각 행에 계산 결과를 덧붙이는 함수== 특정 기준으로 “창(window)”을 만들고 그 범위 내에서 계산한 결과를 각 행에 반환하는 함수→ 엑셀에서 원본 행은 그대로 두고, 옆 열에 순위/합계/비율을 추가하는 느낌왜 필요한가?아래와 같은 문제를 쉽게 해결(예시) :음식 타입별로 상위 3개 식당각 식당이 카테고리 내에서 차지하는 비율누적합(러닝 합계) 계산사용자별 첫 주문 / 두 번째 주문 비교기존 SQL로는 서브쿼리/조인 반복이 필요하지만, Window Function으로 한 번에 계산 가능순서 : PARTITION BY로 나누고 → ORDER BY로 정렬 → 함수 적용 -- 기본 구조window_function(argument)OVER ( .. 2026. 4. 20. 조건에 따라 다른 연산하기(IF, CASE) IF 조건이 TURE면 값1, FALSE면 값2를 반환하는 함수2가지 결과만 처리(간단 분기/짧고 빠름)중첩 가능하지만 가독성이 떨어짐-- 기본 문법IF(조건, 참일 때 값, 거짓일 때 값) -- 삼항연산자-- 실습 1. 음식 타입을 'Korean'일 때는 '한식', 'Korean'이 아닌 경우에는 '기타'로 지정SELECT restaurant_name, cuisine_type AS "원래 음식 타입", -- 기존 음식 타입 그대로 출력 IF(cuisine_type = 'Korean', '한식', '기타') AS "음식 타입" -- 조건에 따라 한식/기타 분류FROM food_orders; .. 2026. 4. 19. 이전 1 2 3 다음