Lv2. 날짜별 획득포인트 조회하기
- 상황 : 이번에는 이용자들이 잘 활동하고 있는지 보고자 합니다. 포인트가 많을수록 활동을 잘하고 있다고 생각 할 수 있습니다. 날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인해봅시다.
- 데이터 설명
- point_users 테이블은 스파르타코딩클럽 가입 유저들의 포인트에 대한 정보를 기록한 테이블입니다.
- point_user_id : user_point 행을 구별하기 위한 key(varchar255)
- created_at : 아이디 생성 날짜(timestamp)
- updated_at : 정보 업데이트 날짜(timestamp)
- user_id : 익명화된 유저들의 아이디(varchar255)
- point : 보유하고 있는 포인트(int)
- point_users 테이블은 스파르타코딩클럽 가입 유저들의 포인트에 대한 정보를 기록한 테이블입니다.
- 문제 : 다음과 같은 결과 테이블을 만들어봅시다.
- created_at : 익명화된 유저들의 아이디(varchar255)
- average_points : 유저가 획득한 날짜별 평균 포인트(int), 반올림 필수
SELECT date(created_at), ROUND(AVG(point)) average_points
FROM point_users
GROUP BY date(created_at)
date의 타입이 날짜로 되어있기에 date() 함수를 사용하여 타입을 변경시켜주고, 각 날짜별 평균 포인트이기에 날짜별로 GROUP BY를 해주어 각각 묶어준다.
point의 평균 값을 내는 것은 AVG()를 사용하지만 반올림이 필수라 하였기에 ROUND() 함수를 사용해준다.
- ROUND(수치값, 반올림자릿수)
- EX) ROUND(123456, -2) 두번째 자리에서 반올림, result : 123500
이렇게 하면 원하는 결과를 얻을 수 있다.
'TIL > 사전캠프 퀘스트' 카테고리의 다른 글
TIL 2024-09-24(SQL_달리기반 4.) (0) | 2024.09.24 |
---|---|
TIL 2024-09-23(SQL_달리기반 3.) (0) | 2024.09.23 |
TIL 2024-09-20(SQL_달리기반 1.) (0) | 2024.09.20 |
TIL 2024-09-20( JAVA_걷기반 반복문 연습하기 Part 1~3) (0) | 2024.09.20 |
TIL 2024-09-20( SQL_걷기반 마지막 문제 ) (1) | 2024.09.20 |