2025/05 31

[LeetCode - Pandas) (Easy) 183. Customers Who Never Order

Table: Customers+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || name | varchar |+-------------+---------+이 테이블에서 id는 기본 키(고유 값이 있는 열)입니다.이 테이블의 각 행은 고객의 ID와 이름을 나타냅니다.Table: Orders+-------------+------+| Column Name | Type |+-------------+------+| id | int || customerId | int |+-------------+------+이 테이블에서 id는 기본 키(고유 값이 있는..

[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..

[LeetCode - Pandas] (Easy) 196. Delete Duplicate Emails

Table: Person+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || email | varchar |+-------------+---------+id는 이 테이블의 기본 키(고유 값이 있는 열)입니다. 이 테이블의 각 행에는 이메일이 포함되어 있습니다. 이메일에는 대문자가 포함되지 않습니다. 문제모든 중복 이메일을 삭제하고, 가장 작은 id를 가진 고유 이메일만 남기도록 해결책을 작성하세요.SQL 사용자는 SELECT가 아닌 DELETE 문을 작성해야 한다는 점을 유의하세요.Pandas 사용자는 Person을 제자리에서 수정해야 한다는 점을 유의하세요.스크립트..

[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는 다른 조건..

[LeetCode - Pandas] (Easy) 197. Rising Temperature

Table: Weather+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || recordDate | date || temperature | int |+---------------+---------+id는 이 테이블의 고유한 값을 가지는 열입니다.같은 recordDate를 가진 다른 행은 없습니다.이 테이블은 특정 날짜의 온도에 대한 정보를 포함하고 있습니다. 문제모든 날짜에서 이전 날짜(어제)의 온도보다 높은 온도를 기록한 날짜의 id를 찾는 해결책을 작성하십시오.결과 테이블은 아무 순서로 반환해도 됩니다.결과 형식은 다음 예시와 같습니다...

[LeetCode - Pandas] (Easy) 511. Game Play Analysis I

Table: Activity+--------------+---------+| Column Name | Type |+--------------+---------+| player_id | int || device_id | int || event_date | date || games_played | int |+--------------+---------+(player_id, event_date)는 이 테이블의 기본 키(고유한 값을 가지는 열의 조합)입니다.이 테이블은 일부 게임의 플레이어 활동을 보여줍니다.각 행은 플레이어가 로그인하고 특정 장치를 사용하여 그날 게임을 몇 번 했는지(0번일 수도 있음) 후 로그아웃한 기록을 나타냅니다. 문제각 플레이어의 첫 번째..

[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..

[LeetCode - Pandas] (Easy) 577. Employee Bonus

Table: Employee+-------------+---------+| Column Name | Type |+-------------+---------+| empId | int || name | varchar || supervisor | int || salary | int |+-------------+---------+empId는 이 테이블의 고유 값이 있는 열입니다. 이 테이블의 각 행은 직원의 이름과 ID, 급여, 그리고 관리자 ID를 나타냅니다.Table: Bonus+-------------+------+| Column Name | Type |+-------------+------+| empId | int || bonus ..