當我在行上進行計數(代碼#1) - 我得到大約880行的正確計數。MS-SQL:SQL「組」創建重複項?
當我按日期分組計數時,它突然增長大約100(代碼#2)。
如果有人能幫助我理解我的問題,我將不勝感激!
在此先感謝!
這裏是表結構:
tblApplicants:
applicantID (index) | ApplyingForYear (nvarchar)
------------------------------------------------------
1 2013/14
11 2013/14
13 2013/14
12 2013/14
15 2013/14
21 2012/13
tblApplicantSchools_shadow:
id (index) | applicantID | updated (datetime) | statusID (int) | schoolID (int)
-----------------------------------------------------------------------------------------------------
1 11 2012-09-24 00:00:00.000 3 2
1 13 2012-10-24 00:00:00.000 4 2
2 15 2012-11-24 00:00:00.000 3 4
3 13 2012-03-24 00:00:00.000 4 3
4 12 2012-09-24 00:00:00.000 4 1
5 21 2012-11-03 00:00:00.000 5 2
6 11 2012-09-04 00:00:00.000 4 4
碼#1(計數正確地):
select count(DISTINCT [tblApplicantSchools_shadow].applicantID) as TotalAppsPerWeek FROM tblApplicants
INNER JOIN tblApplicantSchools_shadow ON tblApplicantS.ApplicantID = tblApplicantSchools_shadow.applicantID
WHERE ApplyingForYear = '2013/14' and [tblApplicantSchools_shadow].statusID = 4
代碼#2(基,計數不正確地):
select DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0) AS Datesubmitted ,count(DISTINCT [tblApplicantSchools_shadow].applicantID) as TotalAppsPerWeek FROM tblApplicants
INNER JOIN tblApplicantSchools_shadow ON tblApplicantS.ApplicantID = tblApplicantSchools_shadow.applicantID
WHERE ApplyingForYear = '2013/14' and [tblApplicantSchools_shadow].statusID = 4
group by DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0)
order by DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0)
期望結果:
Datesubmitted TotalAppsPerWeek
-------------------------------------------------------
2011-11-14 00:00:00.000 1
2012-09-24 00:00:00.000 1
2012-10-08 00:00:00.000 3
2012-10-22 00:00:00.000 2
2012-10-29 00:00:00.000 2
2012-11-05 00:00:00.000 2
2012-11-12 00:00:00.000 5
2012-11-19 00:00:00.000 26
2012-11-26 00:00:00.000 106
2012-12-03 00:00:00.000 353
2012-12-10 00:00:00.000 298
FIDDLE CODE:http://sqlfiddle.com/#!3/3aa61/10
感謝。我需要的是獨特的,因爲可能有幾個條目與具有'statusID = 4'的相同'applicantID' - 我只希望其中一個 - 每個申請人ID – kneidels 2013-03-12 09:18:27
那麼爲什麼你需要第二組? – 2013-03-12 09:28:02
你是對的 - 這是我扔在一起的部分代碼。我正在分組,以便我可以看到有多少申請人 - 在某一天。這樣,我正在計數+日期,這裏是實際的代碼: 'select DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow] .updated)),0)AS Datesubmitted,count(DISTINCT [tblApplicantSchools_shadow] .applicantID)作爲TotalAppsPerWeek' – kneidels 2013-03-12 09:43:40