본문 바로가기

분류 전체보기

(185)
SQL 실전! 실제 DB에서 연습해요(3) - Lv4. 가장 높은 월급을 받는 직원은? Employees 테이블EmployeeIDNameDepartmente" width="100">SalaryManagerID1AliceHRe">70000NULL2BobITe">9000013CharlieITe">8000024DavidITe">8500025EveHRe">7500016FrankFinancee">95000NULL7GraceFinancee">8000068HeidiITe">950002  1. 각 직원의 이름, 부서, 월급, 그리고 그 직원이 속한 부서에서 가장 높은 월급을 받고 있는 직원의 이름과 월급을 조회하는 SQL 쿼리를 작성해주세요.select e.Name, e.Department, e.Salary, b.Top_Earner, b.Top_Salaryfrom employees e inner ..
HAVING 절과 WHERE 절의 차이 사용 시점집계 함수 사용 전 필터링집계 함수 사용 후 필터링대상개별 행그룹예제WHERE price > 100HAVING AVG(price) > 100 SQL 실행 순서FROM: 데이터를 테이블에서 읽어옵니다.WHERE: 개별 행(row)에 대해 조건을 필터링합니다. (집계 함수 사용 불가)GROUP BY: 데이터를 그룹화합니다.집계 함수 (SUM, AVG, COUNT 등): 그룹화된 데이터에 대해 계산을 수행합니다.HAVING: 계산된 결과(집계 함수 포함)를 필터링합니다.SELECT: 최종 결과를 반환합니다.
SQL 실전! 실제 DB에서 연습해요(2) - Lv4. 단골 고객님 찾기 1. 고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.select c.CustomerName CustomerName, count(o.OrderID) OrderCount, coalesce (sum(o.TotalAmount), 0) TotalSpentfrom Customers cleft join Orders o on c.CustomerID = o.CustomerIDgroup by 1주문건수가 없는 고객의 주문 횟수를 어떤 식으로 생각할지 고민했음-> 결국 주문건수가 없다는 것은 orderId가 없다는 것임coalesce (sum(o.TotalAmount), 0)    널인 항목을 0으로 대신 넣겠다 2. 나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을..
SQL 실전! 실제 DB에서 연습해요(1) Lv1. 데이터 속 김서방 찾기select count(1)from userswhere substr(name, 1, 1) = '김' Lv2. 날짜별 획득포인트 조회하기select created_at, round(avg(point)) average_pointsfrom point_usersgroup by created_at Lv3. 이용자의 포인트 조회하기select u.user_id, u.email, coalesce(p.point, 0) pointfrom users uleft join point_users p on u.user_id = p.user_idorder by point descselect u.user_id, u.email, if(p.point is null, 0, p.point) pointf..
SQL 문법 연습 - 11) 마지막 연습 문제 ! idnameprice1랩톱12002핸드폰8003타블렛400 idproduct_idquantityorder_date101122023-03-01102212023-03-02103352023-03-04 1. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!select o.id, p.namefrom orders oleft join products pon o.product_id = p.id 2. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와/ 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!select p.id, sum(p.price * o.quantity) total_salesfrom orders oleft join products pon o.product..
SQL 문법 연습 - 10) 이젠 테이블이 2개입니다 iddepartment_idname1101르탄이2102배캠이3103구구이4101이션이 idname101인사팀102마케팅팀103기술팀 1. 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!select count(*)from departments 2. 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!select e.name name, d.name departments_namefrom employees eleft join departments don e.department_id = d.id 3. '기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!select e.namefrom employees eleft join departments don e.departm..
SQL 문법 연습 - 9)아프면 안됩니다! 항상 건강 챙기세요! idnamebirth_dategenderlast_visit_date1르탄이1985-04-12남자2023-03-152배캠이1990-08-05여자2023-03-203구구이1982-12-02여자2023-02-184이션이1999-03-02남자2023-03-17 1. patients 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!select gender, count(*)from patientsgroup by gender 2. patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!select count(*)from patientswhere 40 year, birth_date, curdate())SELECT COUNT(*) FROM pati..
SQL 문법 연습 - 8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. idnamemajorhire_date1르탄이피부과2018-05-102배캠이성형외과2019-06-153구구이안과2020-07-20 1. doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!select namefrom doctorswhere major = '성형외과' 2. doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!select major, count(*)from doctorsgroup by major 3. doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!select count(*)from doctorswhere hire_date date_sub(curdat..