반응형
SQL에서 날짜 간 평균 시간 계산
MySQL을 사용하여 질문에 대답하는 방법을 찾고 있습니다.사용자가 N번째 프로젝트를 작성하는 간격은 평균 몇 개월입니까?
예상 결과:
| project count | Average # months |
| 1 | 0 | # On average, it took 0 months to create the first project (nothing to compare to)
| 2 | 12 | # On average, it takes a user 12 months to create their second project
| 3 | 3 | # On average, it takes a user 3 months to create their third project
MySQL 테이블은 사용자가 만든 프로젝트를 나타냅니다.표는 다음과 같이 요약할 수 있습니다.
| user_id | project created at |
|---------|--------------------|
| 1 | Jan 1, 2020 1:00 pm|
| 1 | Feb 2, 2020 3:45 am|
| 1 | Nov 6, 2020 0:01 am|
| 1 | Mar 4, 2021 5:01 pm|
|------------------------------|
| 2 | Another timestamp |
| 2 | Another timestamp |
| 2 | Another timestamp |
| 2 | Another timestamp |
| 2 | Another timestamp |
| 2 | Another timestamp |
|------------------------------|
| ... | Another timestamp |
| ... | Another timestamp |
1개의 프로젝트를 가지는 유저도 있고, 수백개의 프로젝트를 가지는 유저도 있습니다.
편집: 현재 구현
with
paid_self_serve_projects_presentation as (
select
`Paid Projects`.owner_email
`Owner Email`,
row_number() over (partition by `Paid Projects`.owner_uuid order by created_at)
`Project Count`,
day(`Paid Projects`.created_at)
`Created Day`,
month(`Paid Projects`.created_at)
`Created Month`,
year(`Paid Projects`.created_at)
`Created Year`,
`Paid Projects`.created_at
`Created`
from self_service_paid_projects as `Paid Projects`
order by `Paid Projects`.owner_uuid, `Paid Projects`.created_at
)
select `Projects`.* from paid_self_serve_projects_presentation as `Projects`
을 사용법나는 생각하고 있다.row_number()
를 작성일 및 합니다.lag()
이전 프로젝트가 생성된 날짜를 얻으려면:
select rn, avg(datediff(created_at, lag_created_at)) avg_diff_days
from (
select t.*,
row_number() over(partition by user_id order by created_at) rn,
lag(created_at, 1, created_at) over(partition by user_id order by created_at) lag_created_at
from mytable t
) t
group by rn
이렇게 하면 평균 일수 차이를 알 수 있으며, 그 달이 더 정확합니다.정말 몇 달을 원한다면, 몇 달을 원한다면timestampdiff(month, lag_created_at, created_at)
datediff()
단, 、 단 、 수 、 수 、 함 、 함 、 - 、 - - 、 - - - - - - - - - - - - - - - 。
언급URL : https://stackoverflow.com/questions/64145457/calculating-average-time-between-dates-in-sql
반응형
'source' 카테고리의 다른 글
왜 JUnit을 테스트에 사용하는가? (0) | 2022.10.27 |
---|---|
페이지가 로드되었을 때 기능을 실행하는 방법은 무엇입니까? (0) | 2022.10.27 |
오류!: SQLSTATE[42000] [1226] 'max_user_connections' 리소스(현재 값: 30)가 1000으로 구성되어 있습니다. (0) | 2022.10.27 |
jQuery를 사용하여 Ajax 요청 중단 (0) | 2022.10.27 |
const-correct는 컴파일러에 최적화를 위한 더 많은 공간을 제공합니까? (0) | 2022.10.27 |