백엔드 부트캠프[사전캠프]/문제풀이

[SQL 달리기반 레벨 3] 💳 이용자의 포인트 조회하기

sintory-04 2025. 1. 31. 20:46

    문제: 💳 이용자의 포인트 조회하기

    이번에는 이용자들 별로 획득한 포인트를 학생들에게 이메일로 보내려고 합니다. 

    이를 위한 자료를 가공해봅시다. 특히 users 테이블에는 있으나 point_users 에는 없는 유저가 있어요. 

    이 유저들의 경우 point를 0으로 처리합시다.

    조건

    user_id: 익명화된 유저들의 아이디
    email: 유저들의 이메일
    point: 유저가 획득한 포인트
    users 테이블에는 있지만 point_users에는 없는 user는 포인트가 없으므로 0 으로 처리
    포인트 기준으로 내림차순 정렬


    1. 알고리즘

    - Users 테이블 기준으로 데이터를 다 가져와야한다. 

    - point_users에 있는 point 에 만약 값이 null 이면 0으로 바꾸어주기.

    - 포인트 기준 내림차순. 

     

    2. SQL 코드

    SELECT u.user_id, u.email, if(p.point <> 0, point, 0) point
    FROM users u LEFT JOIN point_users p on u.user_id = p.user_id 
    ORDER BY point DESC