썸네일 SQL | 데이터 정리(없는 데이터, 사용할 수 없는 데이터) 1. NULL값 정리 방법 1-1) 제외시키기 문제) 평균 rating 구하기 ▶ 원본 데이터의 rating 컬럼 값에 'Not given'이라는 값이 있음 ▶ [MySQL] 사용할 수 없는 값은 알아서 연산에서 제외해줌 → 0으로 간주함 : 연산에 사용된 데이터는 'Not given'을 제외한 데이터 SELECT restaurant_name, AVG(rating) avg_rating, AVG(IF(rating'Not given', rating, NULL)) avg_rating2 FROM food_orders Group By 1 ▶ NULL 제거 - NULL 제거 이전 데이터 상태 - NULL 제거 이후 데이터 상태 : JOIN 중 INNER JOIN 한 효과와 동일한 상태가 됨 : WHERE절에서 IS..
썸네일 SQL | 날짜 데이터 포맷, 조건 1. 날짜 데이터 : 문자/숫자 타입과 같이 날짜 데이터도 특정한 타입을 가지고 있음 : 년, 월, 일, 시, 분, 초 등의 값을 모두 가지고 있고, 목적에 따라 '월', '주', '일' 등으로 포맷 변경이 가능 2. 날짜 데이터의 여러 포맷 ▶ DATE 함수로 데이터 타입을 날짜로 바꾸기 ① yyyy-mm-dd 형식의 컬럼을 날짜 타입으로 바꾸기 SELECT DATE(date) date_type, date FROM payments >> 여기서 왼쪽의 시계 모양은 해당 컬럼의 데이터 타입이 날짜라는 의미, abc는 데이터 타입이 문자라는 의미 >> 즉, 오른쪽의 date 컬럼의 값들은 보이기엔 다 날짜처럼 생겼지만 사실 문자형 데이터였고, date_type 컬럼의 값들은 DATE 함수로 진짜 날짜 데이터..
썸네일 SQL | Pivot Table 만들기 | 실습 문제 0. SQL로 Pivot Table (피벗테이블) 만들기 피벗 테이블을 사용하면 데이터를 한 눈에 쉽게 볼 수 있다는 장점이 있다. 컴퓨터 활용능력 1급 실기 시험을 준비하면서 엑셀에서도 구현해봤던 기억이 나는데 이와 같은 것을 SQL에서도 구현할 수 있다. 뭔가 피벗 테이블 하면 왠지 좀 어려울 것 같은 느낌이 드는 분들도 있을 텐데 (← 는 사실 제 얘기..) 이번 기회에 피벗 테이블에 대한 개념을 확실히 잡아보자. 1. Pivot Table이란? : 2개 이상의 기준으로 데이터를 집계할 때, 보기 쉽게 배열하여 보여주는 것 : 한 컬럼 안에 있던 데이터 값들을 열로 지정해 주는 것 ▶ Pivot Table의 기본구조 : 밑에 제가 만들어둔 2. 실습문제 이미지 보면 확실히 이해 가능!! [참고 게시..
썸네일 SQL | JOIN(조인)할 때 ON절의 컬럼명, 꼭 같아야 할까 0. JOIN(조인)할 때 컬럼명 논란 JOIN할 때 양 테이블의 컬럼명이 꼭 같아야 하는 걸까? 예를 들어, 고객정보 테이블과 주문정보 테이블이 있다. 그런데 이 둘을 이어주는 컬럼이 이런 상황이라면..? - 고객정보 테이블: '고객 아이디' - 주문정보 테이블: '고객ID' 여러분이 생각하는 정답은 YES(조인이 된다) or YES(조인이 된다)? 1. JOIN에 대한 기본사항 ▶ JOIN의 기본 구조 SELECT (조회할 컬럼) FROM (테이블1) (INNER/LEFT/RIGHT) JOIN (조인할 테이블2) ON 테이블1.공통칼럼 = 테이블2.공통칼럼 WHERE (조건절) GROUP BY (그룹화할 컬럼명) ORDER BY (정렬 기준 컬럼명) ASC/DESC 2. JOIN(조인) 컬럼명 논란 ..
썸네일 SQL | 서브쿼리(Subquery) 사용법 정리 | 서브쿼리 예제 0. 서브쿼리(Subquery) 어렵지 않아요! (?ㅎ) 내가 SQL을 처음 접하고, 나름 재미있게(?) 공부하다가 맞닥뜨린 첫 고비가 바로 서브쿼리였다. SELECT절 / WHERE절 / FROM절 등 다양한 위치에서 서브쿼리를 사용할 수 있다고 배웠는데 도대체 언제 SELECT절에 서브쿼리를 쓰는지, 언제 FROM절에 서브쿼리를 쓰는지 감이 안와서 힘이 들었던 기억이 있다. 이건 당시 내가 정리했던 SQL 서브쿼리 정리노트다. (혹시 이 게시물보다 조금 더 자세한 설명이 필요하다면, 아래 게시글 참고 요망) [참고 게시글] [IT 교육/SQL] - SQL 4주차 강의 노트정리[국비지원_스파르타 코딩클럽] SQL 4주차 강의 노트정리[국비지원_스파르타 코딩클럽] 스파르타 코딩클럽 SQL 4주차 강의 '..
썸네일 SQL | IF문, CASE문으로 범주 별 다른 조건 적용하기 0. IF문 / CASE문이 유용한 이유 범주 별로 값을 구할 때 사용하는 대표적인 SQL문법은 Group By절이다. 그런데 만약 범주 별로 다른 연산(계산, 문자바꾸기)을 적용하고 싶다면? 이럴 때 사용할 수 있는 것이 IF문과 CASE문이다. IF문과 CASE문을 사용하면 새로운 카테고리를 만들고, 그 안에서 각자 다른 연산을 적용할 수 있다. IF문과 CASE문에 대해 자세히 알아보자. 1. IF()문 집중 분석 1-1) IF문 : 조건에 따라 다른 방법을 적용하고 싶을 때 : 원하는 조건을 충족할 때 적용할 방법과 충족하지 못했을 때 적용할 방법을 지정해줄 수 있음 if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) 1-2) IF문 실습문제 문제1) 한식 음식점일 경우에는 '한식', 한식..
썸네일 SQL | REPLACE / SUBSTR / SUBSTRING_INDEX / CONCAT 함수 정리 + 실습 문제 0. SQL 쿼리문 짤 때 알면 유용한 함수 SQL에도 엑셀 함수같은 기능이 있다. 이번에는 문자열 데이터 값들을 바꿔주고, 추출하고, 이어주는 함수에 대해 자세히 알아보자. + SUBSTR 함수에 대해서는 SUBSTRING과의 차이, SUBSTRING_INDEX 함수에 대해서도 설명해 놓았다. 1. REPLACE 함수 집중 탐구 1-1) REPLACE 함수 : 특정 문자를 다른 것으로 바꿀 수 있는 기능 replace(바꿀 컬럼, 현재 값, 바꿀 값) 1-2) REPLACE 함수 실습문제 문제1) 식당 명의 'Blue Ribbon'을 'Pink Ribbon'으로 바꾸기 SELECT restaurant_name, REPLACE(restaurant_name, 'Blue', 'Pink') new_restau..
썸네일 SQL | 윈도우 함수(Window Function) 사용법 정리 | RANK함수, SUM함수 0. 윈도우 함수(Window Function)는 다중행 함수 ▶ 다중 행 함수(Multi-Row Function) : 여러 행의 그룹에 대해 적용되는 함수 ▶ 다중 행 함수의 종류(그룹함수, 윈도우 함수) 1) 그룹함수 (집계함수, 고급 집계함수) - 여러 행을 / 그룹으로 묶을 때 / 묶이는 값들을 하나의 값으로 반환해줌 - SELECT문, HAVING 조건절, Order by절에서 사용 가능 집계 함수 고급 집계 함수 COUNT 함수 (개수) ROLLUP 함수 (소그룹 별 소계 계산 / 컬럼 명시 순서 중요) SUM 함수 (합계) CUBE 함수 (결합 가능한 모든 값에 대한 다차원 소계 계산) AVG 함수 (평균) GROUPING SETS 함수 (컬럼들의 개별 소계 계산, 순서 X) MAX / MI..
썸네일 SQL | DISTINCT 탐구_뜻밖의 여정 | Group by절과의 사용법 차이 0. DISTINCT를 Group by절처럼 사용해도 되는 걸까? 먼저 Group by와 DISTINCT가 무엇인지 간단히 살펴보자. ▶ Group by절 기본구조 및 사용법 : 카테고리 별(소그룹 별) 데이터 결과값을 보고 싶을 때 Group by 사용. : Group by절을 사용하면, 여러 행에 나열되어 있던 중복 데이터가 제거되고 하나의 데이터가 됨. SELECT 그룹화한 컬럼명 # Group by절에 적었던 컬럼명 집계함수(그룹화한 칼럼명) # 그룹화한 컬럼의 집계 값 FROM 테이블명 WHERE 조건절 # 테이블 전체 데이터를 조회할 때 적용하고 싶은 조건이 있으면 사용 Group by 그룹화할 컬럼명 # 원하는 소그룹 별 집계 결과값을 보고 싶을 때 사용 Having 조건절 # Group b..