[코딩테스트]/[SQL] 79

[StrataScratch - SQL] (Easy) Number Of Bathrooms And Bedrooms

문제각 도시의 부동산 유형에 대해 평균 욕실 수와 침실 수를 찾아 결과를 도시 이름과 부동산 유형과 함께 출력하세요. 테이블설명 예상결과 ✏️ 풀이SELECT city, property_type, AVG(bathrooms) AS n_bathrooms_avg, AVG(bedrooms) AS n_bedrooms_avgFROM airbnb_search_detailsGROUP BY 1, 2;1. AVG() 를 이용해 bathrooms, bedrooms 평균 구하기2. city, property_type 으로 group by

[StrataScratch - SQL] (Easy) MacBookPro User Event Count

문제MacBookPro 사용자들이 수행한 사용자 이벤트의 수를 세세요. 결과와 이벤트 이름을 함께 출력하고, 결과는 이벤트 수를 기준으로 내림차순으로 정렬하세요. 테이블설명 예상결과 ✏️ 풀이SELECT event_name, COUNT(*) AS event_countFROM playbook_eventsWHERE device = 'macbook pro'GROUP BY 1ORDER BY 2 DESC;1. macbook pro 유저 필터2. event_name별 group by3. 내림차순 정렬

[STrataScratch - SQL] (Easy) April Admin Employees

문제4월 이후에 입사한 Admin 부서의 직원 수를 찾으세요. 테이블설명 예상결과 ✏️ 풀이SELECT COUNT(*) AS 'n_admins'FROM workerWHERE department = 'Admin' AND MONTH(joining_date) >= 4; # 주의 (알아둬야 할 것) #연습에서는 상관없지만 WHERE 절을 쓸때 조건이 되는 컬럼을 MONTH()와 같은 함수를 이용해서 데이터 형태를변형하게 되면 데이터 조회 속도가 떨어진다실무에서는 되도록이면 조건 컬럼은 변형하지 않도록 하는 것이 좋다해당 문제는 년도 조건이 없어서 4월 이후 직원을 찾기 위해 어쩔 수 없이 MONTH()를 썼지만그런 명확한 경우가 아니라면 조건 컬럼은 변형하지 않을 것~!

[StrataScratch - SQL] (Easy) Workers With The Highest Salaries

문제가장 높은 급여를 받는 직원들의 직책을 찾으세요. 여러 직원이 동일한 최고 급여를 받는 경우, 그런 직원들의 직책을 모두 포함하세요. 테이블설명 예상결과 ✏️ 풀이SELECT t.worker_titleFROM worker AS wJOIN title AS t ON w.worker_id = worker_ref_idWHERE salary = (SELECT MAX(salary) FROM worker);서브쿼리로 worker 테이블 전체의 최고 급여를 구한 후 WHERE 절에서 필터

[StrataScratch - SQL] (Easy) Customer Details

문제각 고객이 주문을 했는지 여부에 관계없이 각 고객의 세부 정보를 찾으세요.고객의 이름, 성, 도시와 함께 주문 내역을 출력하세요.고객의 첫 번째 이름과 주문 내역을 기준으로 오름차순으로 기록을 정렬하세요. 테이블설명 예상결과 ✏️ 풀이SELECT c.first_name, c.last_name, c.city, o.order_detailsFROM customers AS c LEFT JOIN orders AS o ON o.cust_id = c.idORDER BY first_name, order_details;예상 결과를 보면 주문내역이 없는 Emma 도 출력되어야 하기 때문에customers테이블을 기준으로 left join을 해야 원하는 데이터가 조회된다

[StrataScratch - SQL] (Easy) Order Details

문제Jill과 Eva가 주문한 주문 내역을 찾으세요.Jill과 Eva는 고객의 이름으로 간주하세요.주문 날짜, 세부 사항 및 비용과 함께 첫 번째 이름을 출력하세요.고객 ID를 기준으로 오름차순으로 주문 기록을 정렬하세요. 테이블설명 예상결과 ✏️ 풀이SELECT c.first_name, o.order_date, o.order_details, o.total_order_costFROM orders AS oJOIN customers AS c ON o.cust_id = c.idWHERE c.first_name IN ('Jill', 'Eva')ORDER BY cust_id;1. 'Jill', 'Eva'를 찾기 위해 WHERE절에서 IN으로 두 데이터를 필터