반응형
https://leetcode.com/problems/the-latest-login-in-2020/description/
group by, 조건절을 사용해본 문제였습니다.
📕 풀이방법
📔 풀이과정
user_id로 group 지어 2020년에 login 기록이 있는 경우의 행들을 뽑아 그들 중 time_stamp의 max를 user_id와 select해줍니다.
📕 Code
📔 PostgreSQL
SELECT user_id, MAX(time_stamp) AS last_stamp
FROM logins
WHERE EXTRACT(YEAR FROM time_stamp) = 2020
GROUP BY user_id;
📔 MySQL, MS SQL Server
SELECT user_id, MAX(time_stamp) AS last_stamp
FROM logins
WHERE YEAR(time_stamp) = 2020
GROUP BY user_id;
📔 Pandas
import pandas as pd
def latest_login(logins: pd.DataFrame) -> pd.DataFrame:
logins['time_stamp'] = pd.to_datetime(logins['time_stamp'])
logins_filtered = logins[logins['time_stamp'].dt.year == 2020]
latest_logins = logins_filtered.groupby('user_id').agg(last_stamp=('time_stamp', 'max')).reset_index()
return latest_logins
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'SQL' 카테고리의 다른 글
| (MySQL) - 프로그래머스(코딩테스트 연습 - SELECT): 가장 큰 물고기 10마리 구하기 (0) | 2024.11.08 |
|---|---|
| (MySQL) - 프로그래머스(코딩테스트 연습 - SELECT): 특정 형질을 가지는 대장균 찾기 (0) | 2024.11.08 |
| (SQL) - LeetCode (easy) 1873. Calculate Special Bonus (0) | 2024.09.03 |
| (SQL) - LeetCode (easy) 1789. Primary Department for Each Employee (0) | 2024.07.31 |
| (SQL) - LeetCode (easy) 1757. Recyclable and Low Fat Products (0) | 2024.07.18 |