MySQL 33

[StrataScratch - SQL] (Medium) Risky Projects

문제다음은 주어진 프로젝트 및 직원 데이터에 대한 설명입니다. 각 프로젝트는 이름, 예산, 특정 기간을 가지고 있으며, 각 직원은 연봉을 가지고 있고 특정 기간 동안 하나 이상의 프로젝트에 배정될 수 있습니다. 작업은 어떤 프로젝트가 예산을 초과했는지 식별하는 것입니다. 프로젝트가 예산을 초과했다고 간주되는 경우는, 해당 프로젝트에 배정된 모든 직원의 비례 비용 합이 프로젝트 예산을 초과하는 경우입니다.이를 해결하려면, 각 직원의 연봉을 해당 프로젝트에서 실제로 작업한 기간에 맞게 비례 배분해야 합니다. 예를 들어, 직원이 6개월 동안 작업한 경우, 연봉의 절반만 해당 프로젝트에 할당되어야 합니다. 각 프로젝트에 배정된 모든 직원의 비례 급여 금액을 합산하고, 그 총액을 프로젝트 예산과 비교합니다.출력에..

[StrataScratch - SQL] (Medium) New Products

문제2020년과 2019년을 비교하여 회사별 출시된 제품 수의 순변화를 계산하십시오. 출력에는 회사 이름과 순차이가 포함되어야 합니다.(순차이 = 2020년에 출시된 제품 수 - 2019년에 출시된 제품 수.) 테이블설명 예상결과 ✏️ 풀이# 풀이1 #SELECT company_name, SUM(IF(year = 2020, 1, 0)) - SUM(IF(year = 2019, 1, 0)) AS total_launchFROM car_launchesGROUP BY 1;# 풀이2 #SELECT company_name, SUM(CASE WHEN year = 2020 THEN 1 ELSE 0 END) - SUM(CASE WHEN year = 2019 THEN 1 ELSE 0 END) AS total_l..

[StrataScratch - SQL] (Medium) Finding User Purchases

문제두 번째 구매를 이전 구매 후 7일 이내에 한 사용자를 찾아서 반환하는 활성 사용자 목록을 식별하세요. 이 사용자들의 user_id 목록을 출력하세요. 테이블설명 예상결과 ✏️ 풀이 SELECT DISTINCT a1.user_idFROM amazon_transactions AS a1JOIN amazon_transactions AS a2 ON a1.user_id = a2.user_id AND a1.id a2.id AND DATEDIFF(a2.created_at, a1.created_at) BETWEEN 0 AND 7ORDER BY a1.user_id;1. amazon_transactions 테이블 조인2. 같은 사용자들의 다른 주문건으로 조인해야하기 때문에 user_id는 같고 id는 다른 조건..

[StrataScratch - SQL] (Medium) Activity Rank

문제각 사용자의 이메일 활동 순위를 구하십시오. 이메일 활동 순위는 보낸 이메일의 총 수로 정의됩니다. 가장 많은 이메일을 보낸 사용자는 순위 1을 가지며, 그 다음 사용자는 순위 2를 가집니다. 사용자, 총 이메일 수, 그리고 그들의 활동 순위를 출력하십시오.• 기록은 총 이메일 수를 기준으로 내림차순으로 먼저 정렬하십시오.• 이메일 수가 같은 사용자는 사용자 이름을 기준으로 알파벳 순으로 정렬하십시오.• 순위에는 이메일 수가 같은 경우에도 고유한 값을 반환하십시오 (즉, 고유한 순위). 테이블설명 예상결과 ✏️ 풀이SELECT from_user, COUNT(*) AS total_emails, ROW_NUMBER() OVER(ORDER BY COUNT(*) DESC, from_user ASC)F..

[StrataScratch - SQL] (Medium) Users By Average Session Time

문제각 사용자의 평균 세션 시간을 계산하십시오. 세션은 page_load와 page_exit 사이의 시간 차이로 정의됩니다. 각 사용자는 하루에 하나의 세션만 있다고 가정합니다. 동일한 날에 여러 개의 page_load 또는 page_exit 이벤트가 있는 경우, 최신 page_load와 가장 이른 page_exit만 사용하되, page_load가 page_exit보다 먼저 발생해야 합니다. user_id와 그들의 평균 세션 시간을 출력하십시오. 테이블설명 예상결과 ✏️ 풀이WITH session_duration AS ( SELECT user_id, timestamp, action, IF(action = 'page_load', @last_load := timestamp, NULL..

[StrataScratch - SQL] (Easy) Most Lucrative Products

문제2022년 상반기 (1월부터 6월까지)의 총 수익 측면에서 가장 수익성이 높은 5개의 제품을 찾아주세요.그들의 ID와 총 수익을 출력해주세요. 테이블설명 예상결과 ✏️ 풀이SELECT product_id, SUM(cost_in_dollars * units_sold) AS revenueFROM online_ordersGROUP BY 1ORDER BY 2 DESCLIMIT 5;1. 수익성 계산 (cost_in_dollars * units_sold)2. product_id별로 group by3. 수익성 내림차순 정렬4. 상위 5개 조회

[StrataScratch - SQL] (Easy)

문제곡이 1위에 랭크된 횟수를 찾아주세요. 트랙 이름과 1위에 랭크된 횟수를 출력해주세요. 기록은 곡이 1위에 랭크된 횟수를 기준으로 내림차순으로 정렬해주세요. 테이블설명 예상결과 ✏️ 풀이SELECT trackname, COUNT(*) AS times_top1FROM spotify_worldwide_daily_song_rankingWHERE position = 1GROUP BY 1ORDER BY 2 DESC;1. 1위한 (= position이 1인 곡들) 곡 필터2. trackname별로 group by

[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. 내림차순 정렬