[사전캠프] 이용자의 포인트 조회하기
2024. 8. 19. 23:54ㆍ내일배움캠프
문제 : 두 테이블에서 각 이용자의 아이디, 이메일, 총 포인트를 조회하는 쿼리 작성
조건 : 결과 조회시 이용자의 아이디, 이메일, 총 포인트에 대한 컬럼이 조회되어야 하며, 획득한 포인트가 없는 이용자에 대한 정보도 포함하여 출력해야 한다. 마지막으로 출력 결과는 총 포인트 기준으로 내림차순 정렬되어야 한다.
SELECT a.user_id, a.email, SUM(b.point) point
FROM users a LEFT JOIN point_users b ON a.user_id = b.user_id
GROUP BY 1
ORDER BY point DESC
대상 테이블은 'users(이용자 정보)', 'point_users(사용자 포인트 획득 정보)' 테이블이며, 'user_id(이용자 아이디)', 'email(이메일)', 'point(포인트)' 컬럼 정보를 조회하는 것이 목적이다. 다른 조건은 포인트 획득에 대한 정보가 없어 포인트 정보가 없는 이용자에 대한 정보도 결과에 포함해야 하며 결과는 각 이용자의 총 포인트를 기준으로 내림차순 정렬되어야 한다.
포인트 정보가 없는 이용자 정보도 포함하기 위해서 LEFT JOIN 을 사용했다. 대상 테이블로 'users' 를 먼저 지정했기에 사용했으며 만약 'users' 를 두 번째로 지정했다면 RIGHT JOIN 을 사용했을 것이다. GROUP BY 로 각 이용자(user_id, 각 이용자가 갖는 고유값)를 그룹화하고 SUM 을 사용해 이용자가 획득한 포인트의 합계를 구했다. 마지막으로 ORDER BY 를 사용해 획득한 포인트(point)를 기준으로 내림차순(DESC) 정렬하였다.
'내일배움캠프' 카테고리의 다른 글
[사전캠프] TIL 작성 - 24.08.20(화) (0) | 2024.08.20 |
---|---|
[사전캠프] TIL 작성 - 24.08.19(월) (0) | 2024.08.19 |
[사전캠프] TIL 작성 - 24.08.18(일) (0) | 2024.08.18 |
[사전캠프] 날짜별 획득 포인트 조회하기 (0) | 2024.08.18 |
[사전캠프] TIL 작성 - 24.08.17(토) (0) | 2024.08.17 |