리트코드 : 1378. Replace Employee ID With The Unique Identifier
문제
Table: Employees
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| name | varchar |
+---------------+---------+
id is the primary key (column with unique values) for this table.
Each row of this table contains the id and the name of an employee in a company.
Table: EmployeeUNI
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| unique_id | int |
+---------------+---------+
(id, unique_id) is the primary key (combination of columns with unique values) for this table.
Each row of this table contains the id and the corresponding unique id of an employee in the company.
Write a solution to show the unique ID of each user, If a user does not have a unique ID replace just show null.
Return the result table in any order.
The result format is in the following example.
Example 1:
Input:
Employees table:
+----+----------+
| id | name |
+----+----------+
| 1 | Alice |
| 7 | Bob |
| 11 | Meir |
| 90 | Winston |
| 3 | Jonathan |
+----+----------+
EmployeeUNI table:
+----+-----------+
| id | unique_id |
+----+-----------+
| 3 | 1 |
| 11 | 2 |
| 90 | 3 |
+----+-----------+
Output:
+-----------+----------+
| unique_id | name |
+-----------+----------+
| null | Alice |
| null | Bob |
| 2 | Meir |
| 3 | Winston |
| 1 | Jonathan |
+-----------+----------+
Explanation:
Alice and Bob do not have a unique ID, We will show null instead.
The unique ID of Meir is 2.
The unique ID of Winston is 3.
The unique ID of Jonathan is 1.
각 유저의 id가 unique인지 판별하고 unique하면 id를, 아니면 null을 반환하는 문제
문제 풀이
MySQL
select u.unique_id, e.name
from employees e
left join employeeUNI u on e.id = u.id;
- 기본 left join 문제이다.
- 행 수가 더 많은 emp테이블을 기준으로 emp uni와 left join을 해주면 된다.
Pandas
import pandas as pd
def replace_employee_id(employees: pd.DataFrame, employee_uni: pd.DataFrame) -> pd.DataFrame:
grouped = pd.merge(employees,employee_uni, how='left')
return grouped[['unique_id','name']]
- 기본 문제
- pd.merge에 left join으로 조인진행
코멘트
- .
'Data Analysis > Query' 카테고리의 다른 글
리트코드 : 1517. Find Users With Valid E-Mails (0) | 2024.08.29 |
---|---|
리트코드 : 1407. Top Travellers (0) | 2024.08.14 |
리트코드 : 1393. Capital Gain/Loss (0) | 2024.08.14 |
리트코드 : 1341. Movie Rating (0) | 2024.08.11 |
리트코드 : 1327. List the Products Ordered in a Period (0) | 2024.08.10 |
리트코드 : 1321. Restaurant Growth (0) | 2024.08.10 |
리트코드 : 1280. Students and Examinations (0) | 2024.08.08 |
댓글