본문 바로가기

SQL

(SQL) - LeetCode (easy) 1407. Top Travellers

반응형

https://leetcode.com/problems/top-travellers/description/

left join과 COALESECE함수를 사용해 본 문제였습니다.

📕 풀이방법

📔 풀이과정

1. users table에 rides table을 user_id에 대해 left join해줍니다. 이는 left outer join과 같은 keyword입니다. users.id에 대한 값이 rides.user_id에 없으면 자동으로 rides의 column에 null을 채워주게 됩니다.2. group by로 u.id, u.name에 대해 진행한 후 sum값으로 각 user_id의 distance합을 구해 null값인 경우 0으로 만들어 주도록 coalesce함수를 사용해줍니다.


📕 Code

📔 ANSI SQL

SELECT 
    u.name AS NAME, 
    COALESCE(SUM(r.distance), 0) AS TRAVELLED_DISTANCE 
FROM users u
LEFT JOIN rides r ON r.user_id = u.id 
GROUP BY u.id, u.name
ORDER BY COALESCE(SUM(r.distance), 0) DESC, u.name;

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