<aside> 💡
오늘의 학습에 대하여
- 피벗테이블… 어려워여… </aside>
1. 오늘 학습 한 내용을 나만의 언어로 정리하기
- 조회한 데이터에 아무 값이 없다면?
- 방법1 null을 이용하기
- rating열에서 평균을 구하고자 no given이 있다?
- not given을 0으로 간주해서 연산함
- 따라서 이 문제를 해결하기 위해선 null로 값을 변환해주어야 함. 그러면 평균 계산에서 제외 됨.
- 또는 where column is not null 해주면 값이 있는 데이터만 연산할 수 ㅇㅆ음.
- rating열에서 평균을 구하고자 no given이 있다?
- 방법2 다른 값을 대신 사용하기
- 조건문 이용하기 if(rating≥1, rating, 대체값)
- coalesce[컬러레스] 이용하기 coalesce(age, 대체값) age가 null이면 대체값으로 반환해줘
- 방법1 null을 이용하기
- 조회한 데이터가 상식적이지 않다면?
- 상식적이지 않은 예시
- 2세, 3세와 같은 고객 나이
- 1970,80년이라는 결제 일자
- 방법1 case when 조건문으로 가장 큰 값, 가장 작은 값으로 범위를 지정 , 특정값으로 출력
- 상식적이지 않은 예시
- 피벗 테이블 만들기
- 피벗 테이블이란?
- 2개 이상의 기준으로 데이터를 집계할 때, 보기 쉽게 배열하여 보여주는 것을 의미한다.
- 피벗 테이블이란?
기본 구조

- 예시 집계기준: 일자, 시간

쿼리 예시
- 행 기준은 age
- 열 기준은 gender
- 열 기준 작성 할 때 max()로 묶어주어야 함.
select age,
max(if(gender='male', order_count, 0)) male,
max(if(gender='female', order_count, 0)) female
from
(
select b.gender,
case when age between 10 and 19 then 10
when age between 20 and 29 then 20
when age between 30 and 39 then 30
when age between 40 and 49 then 40
when age between 50 and 59 then 50 end age,
count(1) order_count
from food_orders a inner join customers b on a.customer_id=b.customer_id
where b.age between 10 and 59
group by 1, 2
) t
group by 1
order by 1 desc

피벗 테이블 접근 방법
- 베이스 데이터 만들기
- 베이스 데이터 서브쿼리로 묶기
- 피벗 테이블 행, 열 순서로 select 쿼리문 작성하기
2. 학습하며 겪었던 문제점 & 에러
- 문제1) count(age) vs count(*)
- 내가 겪은 문제점?
- 실제로 나이가 비어있는 행의 개수는 4개였음 왜 count(age)로 했을 때 0이 나왔나 의문점이 들어서 찾아보았음.
- select count(age) USER from user_info where age is null #0
- 내가 했던 풀이 방식, 왜 틀렸는지?
- count(컬럼명)
- null 값을 아닌, 컬럼에 있는 행만 카운트 함
- 따라서 이미 where 조건으로 비어있는 행만 필터링했고, 모두 null값이라 0이라는 값이 나옴 count(*)
- count(컬럼명)
- 앞으로 어떻게 하면 좋을지?
- null 값을 포함하여 전체 행의 수를 포함하고 싶으면 count(*)를 써야 한다.
- 즉 null 값에 관계없이 count 하고 싶으면 count(*)이다.
- select count(*) USER from user_info where age is null #4
- 내가 겪은 문제점?
- 문제2) 집계, 연산.. 용어가 헷갈려요.
- 집계 : 여러 값을 하나로 요약하는 것 sum, avg, max, min, count
- 연산 : 값을 계산하거나 변형하는 것 +, -, *, /, <>
3. 내일 학습 할 것은 무엇인지
- [ ] sql 5주차 완강, EDA 생각 정리 흐름 순으로 정렬
#내일배움캠프 #사전캠프 #TIL
'기타 > Python' 카테고리의 다른 글
| 250527_파이썬(if, for, while) , SQL(rank) (0) | 2025.05.27 |
|---|---|
| 250526_내일배움캠프_파이썬 기초(시퀀스 자료형) (1) | 2025.05.26 |
| 250509_내일배움캠프 사전캠프_파이썬기초(4) (0) | 2025.05.12 |
| 250508_내일배움캠프 사전캠프_파이썬기초(3) (0) | 2025.05.09 |
| 250508_내일배움캠프 사전캠프_파이썬기초(2) (0) | 2025.05.09 |