본문 바로가기

SQL

(SQL, Python) - LeetCode (easy) 1890. The Latest Login in 2020

반응형

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

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.