Table: Sales
+-------------+-------+
| Column Name | Type |
+-------------+-------+
| sale_id | int |
| product_id | int |
| year | int |
| quantity | int |
| price | int |
+-------------+-------+
(sale_id, year)는 이 테이블의 기본 키(고유한 값의 열 조합)입니다.
product_id는 Product 테이블에 대한 외래 키(참조 열)입니다.
이 테이블의 각 행은 특정 연도에 product_id 제품에 대한 판매를 나타냅니다.
가격은 단위당 가격임에 유의하세요.
Table: Product
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| product_id | int |
| product_name | varchar |
+--------------+---------+
product_id는 이 테이블의 기본 키(고유한 값을 가진 열)입니다.
이 테이블의 각 행은 각 제품의 제품명을 나타냅니다.
문제
Sales 테이블에서 각 sale_id에 대한 product_name, year, 및 price를 보고하는 솔루션을 작성하세요.
결과 테이블은 어떤 순서로 반환해도 됩니다.
결과 형식은 다음 예시와 같습니다.
Example 1:
Input:
Sales table:
+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+
| 1 | 100 | 2008 | 10 | 5000 |
| 2 | 100 | 2009 | 12 | 5000 |
| 7 | 200 | 2011 | 15 | 9000 |
+---------+------------+------+----------+-------+
Product table:
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100 | Nokia |
| 200 | Apple |
| 300 | Samsung |
+------------+--------------+
Output:
+--------------+-------+-------+
| product_name | year | price |
+--------------+-------+-------+
| Nokia | 2008 | 5000 |
| Nokia | 2009 | 5000 |
| Apple | 2011 | 9000 |
+--------------+-------+-------+
설명 :
sale_id = 1에서 우리는 Nokia가 2008년에 5000에 판매되었다고 결론지을 수 있습니다.
sale_id = 2에서 우리는 Nokia가 2009년에 5000에 판매되었다고 결론지을 수 있습니다.
sale_id = 7에서 우리는 Apple이 2011년에 9000에 판매되었다고 결론지을 수 있습니다.
✏️ 풀이
import pandas as pd
def sales_analysis(sales: pd.DataFrame, product: pd.DataFrame) -> pd.DataFrame:
df = pd.merge(sales, product, how='inner', on='product_id')
return df[['product_name', 'year', 'price']]
이번 문제는 단순 merge에 원하는 컬럼만 조회하면 되는 문제라 쉽게 풀었다
'[코딩테스트] > [Pandas]' 카테고리의 다른 글
[LeetCode - Pandas] (Easy) 627. Swap Salary (0) | 2025.04.24 |
---|---|
[LeetCode - Pandas] (Easy) 1050. Actors and Directors Who Cooperated At Least Three Times (0) | 2025.04.24 |
[LeetCode - Pandas] (Easy) 1075. Project Employees I (0) | 2025.04.23 |
[LeetCode - Pandas] (Easy) 1084.Sales Analysis III (0) | 2025.04.22 |
[LeetCode - Pandas] (Easy) 1141. User Activity for the Past 30 Days I (0) | 2025.04.22 |