인스턴트 메신저로 스택 오버 플로우가 발생했습니다. 얼마나 자주 avg (datediff) 함수를 사용하든 상관 없습니다.고급 평균 날짜 고유 ID가있는 전화 번호
다음과 같은 SQL 테이블이 있습니다.
ID | PersonID | 시작 | 끝
1 | 1 | 2006-03-21 00:00:00 | 2007-05-19 00:00:00 | 활성
2 | 1 | 2007-05-19 00:00:00 | 2007-05-20 00:00:00 | 활성
3 | 2 | 2016-08-24 00:00:00 | 2016-08-25 00:00:00 | 활성
4 | 2 | 2005-08-25 00:00:00 | 2016-08-28 00:00:00 | 활성
5 | 2 | 2016-08-28 00:00:00 | 2017-10-05 00:00:00 | 활성
임 사람 전체의 평균 활성 체류 (일)를 찾으려고합니다.
즉, EARLIEST 시작 날짜와 LATEST 종료 날짜 (단일 사용자 ID는 여러 활성 상태를 가질 수 있음)에 따라 평균 일수입니다.
예를 들어, 가장 빠른 시작 날짜는 2006-03-21이고 가장 최근의 종료 날짜는 2007-05-20입니다. 따라서 체류 기간은 425 일입니다.
ID 번호 2에 대해 이것을 반복하십시오. 체류 기간은 407 일입니다.
테이블에있는 모든 사람들을 위해이 작업을 수행 한 후 ... 나는 2 개의 고유 한 사람들이 416 인 평균 5 자리수의 평균 체류 기간을 얻고 싶습니다. 모든 행에서 간단한 datediff 평균을 사용하면 나 102는 매우 부정확하다.
희망적이다. 언제나처럼, 당신이 줄 수있는 어떤 도움도 대단히 감사합니다.
결과를 신뢰할 수 없으면 datediff의 결과를 합계하고 집계 된 값의 수로 나눕니다. – iLikeMySql
나는 이것이 자신이하고 싶은 일이라고 생각하지 않습니다. – Binarus
@iLikeMySql은 매우 간단한 방법으로 감사합니다. – it05jb