Today I Learn
: SQL 4회차 세션 복습 후 과제 제출, SQL 사전 퀘스트 달리기반, 코드카타, 온라인 세션 - 문길래 튜터님
- SQL 세션 4회차 (코드: https://github.com/rladbstj56/2025_main_bootcamp/blob/main/SQL_session/251229_4th)
- UNION vs. UNION ALL
- Full Outer Join은 MySQL에서 지원 안함 but left join + right join 하면 흉내낼 수 있음
- 3개 이상 테이블 다중 JOIN에서 어떤 조인이 1:N이라서 결과가 늘어나는지 설명하고, COUNT(DISTINCT)로 검증하기
- JOIN 학습에 도움 되는 시각화 도구: https://sql-joins.leopard.in.ua/?utm_source=chatgpt.com
- UNION 기본 문법
- LEFT JOIN 할 때 주의할 점 ( LEFT JOIN + NULL 체크로 "~가 없는 대상" 찾기 )
- Left Join에서 조건을 포함할 때 주의할 점
https://myun0506.tistory.com/48
UNION, JOIN
- SQL 세션 4회차 (코드: https://github.com/rladbstj56/2025_main_bootcamp/blob/main/SQL_session/251229_4th)UNION vs UNION ALLUNION 열이 늘어나지 않고 행(레코드)만 늘어남사용 사례11월 신청자 목록과 12월 신청자 목록을
myun0506.tistory.com
- 코드카타
- 문제 1 프로그래머스 이름이 있는 동물의 아이디
1. 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/59407
2. 정답 코드:
select animal_id
from animal_ins
where name is not null
order by animal_id asc
3. 오류 상황: 없음
- 문제 2 프로그래머스 NULL 처리하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59410
2. 정답 코드:
select
animal_type,
case when name is null then "No name" else name end as name,
sex_upon_intake
from animal_ins
- 문제 3 프로그래머스 나이 정보가 없는 회원 수 구하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131528
2. 정답 코드:
select
sum(case when age is null then 1 else null end) as users
from user_info
select count(*) as users
from user_info
where age is null
- 문제 4 프로그래머스 역순 정렬하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59035
2. 정답 코드:
select
name,
datetime
from animal_ins
order by animal_id desc
- 문제 5 프로그래머스 아픈 동물 찾기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59036
2. 정답 코드:
select animal_id, name
from animal_ins
where intake_condition = 'sick'
order by animal_id
- 문제 6 프로그래머스 중복 제거하기
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59408
2. 정답 코드:
select count(distinct name)
from animal_ins
- 문제 7 프로그래머스 동물의 아이디와 이름
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59403
2. 정답 코드:
select animal_id, name
from animal_ins
order by animal_id
- 문제 8 프로그래머스 동물 수 구하
1. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59406
2. 정답 코드:
select count(*)
from animal_ins
- 데이터 리터러시 강의
https://myun0506.tistory.com/49
[데이터 리터러시 강의] 결과 vs 결론, 결론을 잘 정리하는 법
결과데이터 처리, 분석, 모델링 후에 얻어진 구체적인 데이터의 출력계산과 분석을 해서 나온 결과물결론분석된 데이터 결과를 바탕으로 이끌어낸 의미나 통찰데이터에 기반한 해석, 추론 또는
myun0506.tistory.com
- SQL 사전 퀘스트 달리기반
- date format 함수
- date_format(DATE 컬럼,'%Y-%m-%d')
- date(DATE 컬럼)
select
date_format(created_at, '%Y-%m-%d') as created_at, # char type
round(avg(point),0) as average_points
from point_users
group by 1
select
date(created_at) as created_at, # date type
round(avg(point)) as average_points
from point_users
group by date(created_at)
- COALESCE 함수(null 포함 컬럼1, null 포함 컬럼 2, ... , 대체할 값)
select
u.user_id,
u.email,
case when pu.point_user_id is null then 0 else pu.point end
AS points
from users u
left join point_users pu
on u.user_id = pu.user_id
order by 3 desc;
select u.user_id, u.email,
COALESCE(p.point,0) as point
from users u
left join point_users p
on u.user_id = p.user_id
order by p.point desc;
- Lv.4부터 갑자기 너무 어려워짐....
못풀겠어요
- 문제: 나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.
- 정답:
# 문제 2
# 풀다가 포기....
# 정답 코드
SELECT
c.Country,
c.CustomerName AS Top_Customer,
SUM(o.TotalAmount) AS Top_Spent
FROM
Customers c
JOIN
Orders o ON c.CustomerID = o.CustomerID
GROUP BY
c.Country, c.CustomerName
HAVING
SUM(o.TotalAmount) = (
SELECT
MAX(SumSpent)
FROM
(SELECT
SUM(o2.TotalAmount) AS SumSpent
FROM
Customers c2
JOIN
Orders o2 ON c2.CustomerID = o2.CustomerID
WHERE
c2.Country = c.Country
GROUP BY
c2.CustomerID) AS Subquery
);
- 서브쿼리가 두번 나와서 구조가 너무 복잡해서 이해하기 어려움.... 지금 sql 문제를 너무 많이 풀어서 머리가 아프기도 하고 해서 일단 포기하고.... 다음에 서브쿼리 열심히 연습 한 후에 다시 쿼리 읽어보러 올게요.......
- 퀴즈 링크: https://nbc-precamp-data.oopy.io/29a2dc3e-f514-8146-a2dc-c46fea693d7d
- AI 활용법 세션 - 문길래 튜터님
- AGI : Artificial General Intelligence 범용 인공지능
- 특정 작업에 국한되지 않고 인간처럼 다양한 인지 작업을 이해하고, 학습하며, 해결할 수 있는 인공지능
- AI를 적극적으로 활용하되 결과가 옳은지 그른지 나 스스로가 판단할 수 있어야 함.
- 반복적인 작업 / 단순한 초안 작성 / 기초적이고 분명한 정리 ; 신입보다 AI를 활용하는 것이 더 효율적이고 편함
- 취업의 길을 많이 열어놓고, 1-2년이라도 실무를 익히면서 '신입'의 틀을 벗는게 중요함
- 노동의 가치가 점점 떨어짐
- 나의 경쟁상대는 AI가 아니라, AI를 나보다 더 잘 활용하는 사람!
- AI를 활용할 때 '정량화'해서 질문하기
- ex) 이해하기 쉽게 설명해줘 (X) → 중학교 2학년 수준으로 설명해줘 (O)
'[데이터분석] 부트캠프 TIL' 카테고리의 다른 글
| 20260101 TIL (0) | 2026.01.01 |
|---|---|
| 20251231 TIL (0) | 2025.12.31 |
| 20251229 TIL (0) | 2025.12.29 |
| 20251226 TIL (1) | 2025.12.26 |
| 20251224 TIL (0) | 2025.12.24 |