반응형
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;
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'SQL' 카테고리의 다른 글
(SQL) - LeetCode (easy) 1587. Bank Account Summary II (0) | 2024.05.02 |
---|---|
(SQL) - LeetCode (easy) 1581. Customer Who Visited but Did Not Make Any Transactions (0) | 2024.04.30 |
(SQL) - LeetCode (easy) 1378. Replace Employee ID With The Unique Identifier (0) | 2024.02.26 |
(Tibero 7) - varray 찍먹하기 (0) | 2024.02.05 |
(SQL) - LeetCode (easy) 1280. Students and Examinations (0) | 2024.01.12 |