데이터 분석/데이터 분석_SQL 15

[사전캠프] 7일차 SQL 걷기반 - 마지막 연습 문제!

마지막 연습 문제 !     0. 테이블 만들기     44. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!SELECT o.id, p.nameFROM orders o LEFT JOIN products p ON o.product_id = p.id;     45. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!SELECT o.product_id, SUM(p.price * o.quantity) total_salesFROM orders o INNER JOIN products p ON o.product_id = p.idGROUP BY 1ORDER BY 2 DESC LIMIT 1;   ..

[사전캠프] 7일차 SQL 걷기반 - ⑩

10) 이젠 테이블이 2개입니다     0. 테이블 만들기     38. 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요! SELECT COUNT(*) "총 부서의 수"FROM departments;     39. 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!SELECT e.name, d.nameFROM employees e LEFT JOIN departments d ON e.department_id = d.id;## 정답SELECT e.name, d.name FROM employees e INNER JOIN departments d ON e.department_id = d.id;     40. '기술팀' 부서에 속한 직원들의 이름을 나열하는 ..

[사전캠프] 7일차 SQL 걷기반 - ⑨

9) 아프면 안됩니다! 항상 건강 챙기세요!     0. 테이블 만들기     34.  patients  테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요! SELECT gender, COUNT(1) gender_cntFROM patientsGROUP BY gender;     35.  patients  테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요! SELECT COUNT(1) "40대 이상 환자"FROM patientsWHERE TIMESTAMPDIFF(YEAR, birth_date, CURDATE()) >= 40;##정답SELECT COUNT(*) FROM patients WHERE birth_date      36.  pa..

[사전캠프] 7일차 - SQL 걷기반 ⑧

8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.       0. 테이블 만들기     30.  doctors  테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!SELECT name, majorFROM doctorsWHERE major = '성형외과';     31.  doctors   테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!SELECT major, count(1) doctor_cntFROM doctorsGROUP BY major;     32.  doctors   테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요! SELECT COUNT(1) "5년 이상 근무"..

[사전캠프] 7일차 - SQL 걷기반 ⑦

7) 랭크게임 하다가 싸워서 피드백 남겼어요…    0. 테이블 만들기     25.  lol_feedbacks  테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!SELECT *FROM lol_feedbacksORDER BY satisfaction_score DESC;     26.  lol_feedbacks  테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요! SELECT user_name, MAX(feedback_date) recently_feedbackFROM lol_feedbacksGROUP BY 1;     27.  lol_feedbacks  테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 ..

[사전캠프] 6일차 - SQL 걷기반 ⑥

6) 팀 프로젝트 열심히 했으니 다시 놀아볼까요?!   0. 테이블 만들기 21.  lol_users  테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)SELECT name, rating, RANK() over(ORDER BY rating DESC) AS user_rankFROM lol_users;  22. lol_users  테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요!SELECT nameFROM lol_usersORDER BY join_date..

[사전캠프] 6일차 - 엑셀보다 쉽고 빠른 SQL | 5주차

• 조회한 데이터에 어떠한 값도 존재하지 않을 때없는 값을 제외 하는  NULL  문법SELECT restaurant_name, avg(rating) avg_rating, avg(IF(rating'Not given', rating, NULL)) avg_rating2FROM food_ordersGROUP BY 1;  명확하게 연산을 지정해주는  NULL  문법SELECT f.order_id, f.customer_id, f.restaurant_name, f.price, c.name, c.age, c.genderFROM food_orders f LEFT JOIN customers c ON f.customer_id=c.cust..

[사전캠프] 5일차 - 엑셀보다 쉽고 빠른 SQL | 4주차

• 여러번의 연산을 한 번의 SQL문으로 수행하기(Subquery) Subquery  문이 필요한 경우        - 여러번의 연산을 수행해야 할 때        - 조건문에 연산 결과를 사용해야 할 때        - 조건에 Query 결과를 사용하고 싶을 때 Subquery  함수의 사용방법SELECT 컬럼, 스페셜_컬럼FROM ( /* subquery */ SELECT 컬럼, 컬럼2 스페셜_컬럼 FROM table ) a;SELECT column1, column2FROM table1where column1 = (SELECT col1 FROM table2) [예제] Subquery  문을 이용하여 연산문 적어보기SELECT order_id, restaurant_name, IF(..

[사전캠프] 4일차 - 엑셀보다 쉽고 빠른 SQL | 3주차

• 필요한 문자 포맷이 다를 때, SQL로 가공하기 특정문자를 다른 문자로 바꾸기 REPLACE  함수 사용법REPLACE(바꿀 컬럼, 현재 값, 바꿀 값) [예제] 식당명의 'Blue Ribbon'을 Pink Ribbon으로 바꾸기 SELECT restaurant_name "원래 상점명", REPLACE(restaurant_name, 'Blue', "Pink") "바뀐 상점명"FROM food_ordersWHERE restaurant_name LIKE '%Blue Ribbon%';  [예제] 식당주소 '문곡리'를 '문가리'로 변경하기SELECT addr, replace(addr, "문곡리", "문가리") "바뀐주소"FROM food_ordersWHERE addr LIKE '%문곡리..

[사전캠프] 4일차 - SQL 걷기반 ⑤

5) 공부하다보니 팀 프로젝트 시간이 왔어요!     0. 테이블 만들기 17.  team_projects  테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!SELECT nameFROM team_projectsWHERE aws_cost >= 40000; 18.  team_projects   테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date 조건을 사용하지 말고 쿼리를 작성해주세요!SELECT *FROM team_projectsWHERE start_date LIKE '2022%'##정답SELECT id, name, start_date, end_date, aws_cost FROM team_pro..