SQL 14

[스파르타 코딩클럽] 엑셀보다 쉽고 빠른 SQL 4주차

1. 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기1. 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기평균 음식 주문 금액 기준 : 5,000 이하 / ~10,000 / ~30,000 / 30,000 초과평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상두 테이블 모두에 데이터가 있는 경우만 조회, 식당 이름 순으로 오름차순 정렬SQL 기본구조 적어보기각 테이블에서 필요한 컬럼 정리하기Join 문으로 데이터 조회문 적어보기데이터를 연산해보기연산한 데이터를 segmentation 에 활용하기SELECT orders_customers.restaurant_name, orders_customers.avg_age_seg..

Lessons 2025.05.02

[Spring 사전캠프 걷기반] 11장

44. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!with product_orders as ( select ol.id as orders_id, ol.product_id , pl.name, pl.price, ol.quantity, ol.order_date from products_last pl inner join orders_last ol on pl.id = ol.product_id)select po.orders_id, po.namefrom product_orders po45. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 ..

Running 2025.05.02

[Spring 사전캠프 걷기반] 10장

38. 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!select *from employees eselect count(distinct d.name) as total_namefrom departments d39. 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!select e.id, e.department_id, e.name, d.namefrom employees einner join departments d on e.department_id = d.id;inner join 을 사용하여 employees 테이블(이하 e)의 e.epartment기준으로 departments 테이블(이하 d)의 데이터 삽입40. '기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성..

Running 2025.05.02

[Spring 사전캠프 걷기반] 9장

34. patients 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!select p.gender, count(*) as gender_countfrom patients p group by p.gender 35. patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!select count(*) as Over_40_years_oldfrom patients p where p.birth_date 36. patients 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!select *from patients p where p.last_visit_date 37. patients..

Running 2025.05.02

[Spring 사전캠프 걷기반] 8장

30. doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!select d.name from doctors dwhere d.major like '%성형외과%'31. doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!select d.major, count(*) as major_countfrom doctors dgroup by d.major 32. doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!select count(*) as doctor_countfrom doctors dwhere d.hire_date 33. doctors 테이블에서 각 의사의 근무 기간을 계..

Running 2025.05.02

[Spring 사전캠프 걷기반] 7장

25. lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!select *from lol_feedbacks lforder by lf.satisfaction_score desc26. lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!select lf.user_name, max(lf.feedback_date) as Recent_datafrom lol_feedbacks lfgroup by lf.user_name 27. lol_feedbacks 테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 작성해주세요!select count(lf.satisfaction_score) as..

Running 2025.05.02

[Spring 사전캠프 걷기반] 6장

21. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)SELECT *, rank()OVER(order by lu.rating) as 'RANK'from lol_users lu22. lol_users 테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요풀이 1with user_name as ( SELECT lu.name as nameA, lu.join_date, row_number()OVER(order by lu.join_date) as jd_date f..

Running 2025.05.02

[Spring 사전캠프 걷기반] 5장

17. team_projects 테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!select *from team_projects tpwhere tp.aws_cost > 4000018. team_projects 테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date select *from team_projects tpwhere tp.start_date like '2022%'19. team_projects 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!select *from team_projects tpwhere tp.end_..

Running 2025.05.02

[Spring 사전캠프 걷기반] 4장

13. sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요!select ss.name, ss.track from sparta_students ss14. sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!select *from sparta_students sswhere ss.track 'Unity'15. sparta_students 테이블에서 입학년도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해주세요!select *from sparta_students sswhere ss.enrollment_year in (2021, 2023)16. s..

Running 2025.05.02