[기억할 개념]
- distinct (컬럼): 중복값 제거, count 함수에서 종류 셀 때 사용
- concat: 여러 문자를 동시에 합하기
- if (조건, 조건을 충족할 때의 값, 조건을 충족하지 못할 때의 값)
- case when ~ end:
case when 조건 1 then 값(수식)1
when 조건 2 then 값(수식)2
else(기타) 값(수식)3
end - left join ~ on:
select 조회할 컬럼
from 테이블1 a(별명1) left join 테이블2 b(별명2) on a.공통컬럼명=b.공통컬럼명 - inner join ~ on:
select 조회할 컬럼
from 테이블1 a(별명1) left join 테이블2 b(별명2) on a.공통컬럼명=b.공통컬럼명
**JOIN 수식의 개념 (≒ Vlookup 함수)

- 조회한 데이터에 값이 없을 때
1) 0으로 간주하는 방법 → Mysql 에서는 사용할 수 없는 값일 때 해당 값을 연산에서 제외
=> 제거하지 않을 때, 평균 값에서 데이터 부정확하게 나옴
select restaurant_name,
avg(rating) average_of_rating,
avg(if(rating<>'Not given', rating, null)) average_of_rating2
from food_orders
group by 1
2) null 값을 제외하는 방법
select a.order_id,
a.customer_id,
a.restaurant_name,
a.price,
b.name,
b.age,
b.gender
from food_orders a left join customers b on a.customer_id=b.customer_id
where b.customer_id is not null
3) null 값에 다른 값으로 대치
① 다른 값이 있을 때: if(rating>=1, rating, 대체값)
② null 값일 때: coalesce(age, 대체값)
select a.order_id,
a.customer_id,
a.restaurant_name,
a.price,
b.name,
b.age,
coalesce(b.age, 20) "null 제거",
=> b.age에 값이 없다면 모두 20으로 대체해달라는 내용
b.gender
from food_orders a left join customers b on a.customer_id=b.customer_id
where b.age is null
[배운 점]
- SQL 쿼리 문법은 생각보다 길어져 어렵다.
이걸 퍼포먼스 마케터한테 요구한다고..? 대기업들 양애취..? - 엑셀에서는 데이터 없는 값을 필터링을 주거나, 혹은 COUNT 함수로도 간편하게 찾을 수 있는데,
SQL에서는 NULL 값으로 부르는 것 개념 자체가 조금 어렵다. - 강의 들을 때마다 주차별 강의자료를 모두 저장!! 저장!! 실무할 때 요긴하게 쓸 것 같다.
[코드카타]

=> 튜터님 답변) 정답은 맞으나, 엔지니어링 관점에서 테이블을 한번 더 불러온 것이기 때문에 연산이 2번되어 데이터 처리량이 2배가 됨. 따라서 where 구문 -> left join 구문으로 활용하는 것을 추천. 실무에서는 where 구문을 left join 구문으로 많이 활용함!
- 내가 쓴 raw code:
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME=(SELECT MIN(DATETIME) FROM ANIMAL_INS)
- 튜터님이 쓴 raw code:
=> limit (행 숫자): 데이터양을 제한시켜 몇 행까지 보겠다. (순위 개념)
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1select name
, min(DATETIME)
from ANIMAL_INS
group by 1
order by 2
[NEW 팀]
- 팀원은 나까지 총 5명
- 아침에 정신 없이 자기 소개를 빠르게 하고, MBTI를 모두 여쭤보니 모두 T셨음. (다행..)
- 그러나 나를 제외한 팀원 4분이 모두 I 성향이셔서 어쩔 수 없이 내가 또 팀장을 맡게 되었음.
- 이번엔 남성 분들이 많아서 조금 걱정은 되나, 아직까지 잘 해주시고 계심.
- 그리고 남성 1분과 나를 제외하면 모두 98년생, 올해 만 26세(?)이심.
어리신 분들이라, 애초부터 나는 '꼰대'라고 명명함. - 친구들과 동갑인 남성 분은 이전 직장이 OTT 회사에서 근무하셨고,
엑셀을 잘하셔서 SQL 업무도 맡게 되었다가 이쪽이 잘 맞아서 아예 직무 변경을 고려하고 계심.
그래서 1.5주 뒤 프로젝트 주제 선정할 때 많은 도움이 될 듯 함. - 아직까지 분위기가 괜찮다.
- 금주부터 차주까지 모두 강의만 듣는 주간이라, 루즈한 느낌이 있다.
지난주를 정신 없이 보내다 보니 혼자 해야 하는 일들이 많아서 아직 낯설다.
'SQL' 카테고리의 다른 글
| 12/28 - SQL 심화학습 3일차 & 데이터 관련 자격증 정보 및 일정 & 국민취업제도 간략 설명 (2) | 2023.12.28 |
|---|---|
| 12/27 - SQL 심화학습 2일차 (2) | 2023.12.27 |
| 12/21 - 스프레드 시트 수정 집중 및 발표 순서 정리 (1) | 2023.12.21 |
| 12/20 - 차트 구현 및 노션 발표 자료 수정 집중 (1) | 2023.12.20 |
| 12/19 - 목표 변경 및 데이터 수집 조사 (+실현가능성까지 체크) (0) | 2023.12.19 |