SQL 연습문제 - Lv2. 날짜별 획득포인트 조회하기

이희수·2024년 12월 18일
  • 상황: 이번에는 이용자들이 잘 활동하고 있는지 보고자 합니다. 포인트가 많을수록 활동을 잘하고 있다고 생각 할 수 있습니다. 날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인해 봅시다.
  • 데이터 설명
    • point_users 테이블은 스파르타코딩클럽 가입 유저들의 포인트에 대한 정보를 기록한 테이블입니다.
      • point_user_id: user_point 행을 구별하기 위한 key(varchar255)

      • created_at: 아이디 생성 날짜(timestamp)

      • updated_at: 정보 업데이트 날짜(timestamp)

      • user_id: 익명화된 유저들의 아이디(varchar255)

      • point: 보유하고 있는 포인트(int)

  • 문제: 다음과 같은 결과테이블을 만들어봅시다.
    • created_at: 익명화된 유저들의 아이디(varchar255)

    • average_points: 유저가 획득한 날짜별 평균 포인트(int), 반올림 필수

내가 작성한 쿼리 :

select date(created_at) created_at,
       ROUND(AVG(point)) average_points
From point_users 
group by 1

created_at 컬럼에 데이터가 날짜와 시간으로 작성되어 있는데,
날짜 부분만 살려주기 위해 DATE()함수를 사용해준다.

평균 포인트를 구하기 위해 AVG()함수를 사용해주고, 결과값을 반올림하기 위해 ROUND()함수도 사용해준다.

날짜 별로 평균 포인트를 구해주는 것이기 때문에, group by date(created_at) (=group by 1)으로 그룹핑 해준다. 날짜 범위 별로 평균 포인트를 구한 결과값을 얻게 된다.

0개의 댓글