sql

date round()

148june 2025. 1. 24. 17:34
  • 이번에는 이용자들이 잘 활동하고 있는지 보고자 합니다. 포인트가 많을수록 활동을 잘하고 있다고 생각 할 수 있습니다. 날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인해 봅시다.
  • 데이터 설명
    • 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은 같아 보이지만 날짜형만 요구하고

포인트는 평균값을 요구하고잇다.

그룹으로 해주면 될것이다.

SELECT 
    DATE(created_at) AS created_at,  -- 날짜 부분만 추출 (시간 제외)
    ROUND(AVG(point)) AS average_points  -- 날짜별 포인트 평균을 반올림하여 계산
FROM 
    point_users
GROUP BY 
    DATE(created_at)  -- 날짜별로 그룹화
ORDER BY 
    created_at;  -- 날짜 순으로 정렬

날짜순으로 정렬은 해주면 더 깔금하게 알수있다.

'sql' 카테고리의 다른 글

with  (0) 2025.01.31
left join  (0) 2025.01.31
selct from where  (0) 2025.01.24
1차 마무리 문제  (0) 2025.01.23
e.name d.name JOIN ON  (0) 2025.01.23