개발일지/SQL

SQL 실전!(2)

프린스 알리 2024. 10. 24.

이용자들이 잘 활동하고 있는지 보고자 합니다. 포인트가 많을수록 활동을 잘하고 있다고 생각 할 수 있습니다. 날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인해 봅시다.

데이터 설명

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), 반올림 필수

문제 풀이

created_at필드의 데이터 DATE 자료형으로 변환→날짜별(created)로 유저가 획득한 포인트 평균 내기

정답:

SELECT date_pu.ca AS created_at
    , ROUND(AVG(date_pu.point)) AS average_points
FROM
(
SELECT DATE(created_at) AS ca
    , point
FROM point_users
) date_pu
GROUP BY created_at
;

결과 확인:

정답 확인:

SELECT 
    DATE(p.created_at) AS created_at,
    ROUND(AVG(p.point)) AS average_points
FROM 
    point_users p
GROUP BY 
    DATE(p.created_at);

 

'개발일지 > SQL' 카테고리의 다른 글

SQL 실전!(4)  (2) 2024.10.24
SQL 실전!(3)  (0) 2024.10.24
SQL 실전!(1)  (0) 2024.10.24
SQL 문법 다지기(11)  (0) 2024.10.14
SQL 문법 다지(10)  (0) 2024.10.14

댓글