我試圖找到某些服務代碼的記錄數,按年份 - 在我的數據庫中。SQL沒有正確分組
代碼:
SELECT datepart(year,dbo.PUBACC_HD.grant_date) as'Year',
dbo.PUBACC_HD.radio_service_code as 'Service Code',
count(dbo.PUBACC_FR.transmitter_make) as 'Number of Records'
FROM dbo.PUBACC_FR
INNER JOIN dbo.PUBACC_HD
ON dbo.PUBACC_FR.unique_system_identifier = dbo.PUBACC_HD.unique_system_identifier
GROUP BY dbo.PUBACC_HD.grant_date, dbo.PUBACC_HD.radio_service_code
ORDER BY [Number of Records] desc
當前結果:
Year Service Code Number of Records
----------- ------------ -----------------
2011 CF 11195 <----
2013 CF 2042
2011 CF 1893 <----
2013 CF 1879
2013 CF 1841
2013 CF 1741
2013 CF 1644
2010 CF 1595
2013 MG 1563
2011 CF 1512 <----
2013 CF 1510
2011 CF 1454
2011 CF 1428
2016 CF 1385
2011 CF 1378
2015 MG 1349
我希望所有的字段進行彙總。沒有聚合的例子用箭頭表示。 (2011, CF)
只是一個不正確聚合的大表中的一個例子。
任何人都知道爲什麼會發生這種情況?
爲什麼不'GROUP BY datepart(year,dbo.PUBACC_HD.grant_date),dbo.PUBACC_HD.radio_service_code'? – jarlh
由於您按日期分組,但您顯示的是年份。在grant_date的年份而不是日期時間的組中,您應該很好。 –
爲什麼只有那三個「2011」記錄被分組,而不是全部? –