사용자가 작업을 수행 할 때마다 하나의 행을 포함하는 Occurrences 테이블이 있습니다. 사용자가 하루에 여러 번 행동을 취합니다. 그것은 다음과 같습니다SQL - 주어진 트랜잭션의 인스턴스 수를 계산 및 요약 (범위 내)
범위에서 매일Date Username
------ --------
1/1/9 User1
1/1/9 User1
1/1/9 User2
1/2/9 User1
1/2/9 User3
1/3/9 User1
1/3/9 User1
1/3/9 User1
1/3/9 User2
1/3/9 User3
1/4/9 User1
1/5/9 User1
1/6/9 User1
1/7/9 User1
, 내가 작업을 여러 번 촬영 한 사람들의 수를 표시하고 싶습니다 - 6과 10 사이, 2, 5 번 사이의 말을하자 시간, 그리고 10 배 이상. 그러나 만 다른 요일에 해당 작업을 반복하여 해당 작업의 다른 인스턴스로 계산하는 것이 좋습니다. 예를 들어, 사용자가 첫 번째 날에 3 번 작업을하고 다음 날에 다시 # 번 작업을 한 경우 사용자가 작업을 2 번 수행 했으므로 2 ~ 5 번에 있어야합니다 기둥.
위의 샘플 데이터에 해당하는 결과 집합은 다음과 같습니다 결과의 각 행은 특정 일에만에 대한 반복 작업 의 # 수를 계산
가 #_of_people #_of_people #_of_people
who_did_action who_did_action who_did_action
Date 2to5_times 6to10_times more_than_10 Total
----- -------------- -------------- -------------- -----
1/1/9 0 0 0 0
1/2/9 1 0 0 1
1/3/9 3 0 0 3
...
1/7/9 0 1 0 1
주 - 누적되지 않습니다.
- 1/1/9 행은 첫날이므로 모든 동작이 첫 번째로 간주됩니다.
- 1/2/9 행은 User1 만 반복했기 때문에 1, 0, 0, 1입니다. 사용자 3이 처음입니다.
- User1이 두 번 반복되고 User2가 한 번 반복되며 User3이 한 번 반복되기 때문에 1/3/9 행은 3, 0, 0, 3입니다.
- User1이 6 번 반복되었으므로 1/7/9 행은 0, 1, 0, 1입니다.
날짜는 datetime 데이터 형식입니다. 그러나 나는 필요하다면 무엇이든간에 모든 것을 전환하게되어 기쁘다. :) – Robert
어떤 버전의 SQL Server입니까? 이 경우에는 –
2008이지만 실제로는. 가능한 경우 비 버전 특정 기능을 사용하는 것을 선호하지만 그렇지 않은 경우 걱정하지 않아도됩니다. – Robert