테이블이 있습니다. 학생이 수행 한 테스트 결과가 있다고 가정 해 봅시다. 모든 시험은 한 학생이 끝내고, 그들이 원하는만큼 자주 시험을 치를 수 있습니다. 소스 테이블은 다음과 같습니다SQL에서 롤링 요약 통계 계산
테스트 촬영 때마다 들어TestID StudentID Pass Score
-------- ----------- ------ -------
1 1 0 4
2 1 0 6
3 2 1 8
4 1 1 9
5 1 0 2
, 나는 그 학생의 모든 이전 결과에 대한 요약 통계를 계산합니다. 내가 어떻게 SQL 기간에 넣고하는 아무 생각이
TestID StudentID Times Taken AvPass AvScore
-------- ----------- ------------- -------- ---------
4 1 2 0 5
5 1 3 .33 6.33
, 효율적으로 코딩 커녕 :이 결과 테이블은 다음과 같은 형태가 될 것이다 (꼬리)입니다. 어떤 도움을 주셔서 감사합니다!
어떤 버전의 SQL Server입니까? 2012 년에는 AVG (Score) OVER (StudentID Order by Participation by TestId by UnbOUNDED PRECEDING와 1 PRECEDING 사이의 차이점)를 지원합니다. – dnoeth
유망한 것으로 보입니다. '무제한 양육과 1 양육의 관계'는 정확히 무엇입니까? 날짜 순서가 맞습니까? –
주문할 때 _some_ 열만 있으면되므로 잘 작동합니다. –