我试图返回对“历史记录”表中按季度和年份分组的记录总数的计数。目前我有:
SELECT DISTINCT (CAST(DATEPART(year, CREATE_DATE) AS char) + ' Qtr' +
CAST(DATEPART(quarter, CREATE_DATE) AS char)) AS Period,
COUNT(ID)
FROM HISTORY
GROUP BY CREATE_DATE
ORDER BY Period;
但是我得到了具有相同季度和年份的重复行。我还得到的总记录数低于表中的总记录数。 Here's a sample sql fiddle,以帮助发现问题。
我也不会认为我需要在period列中指定DISTINCT,但是当我不这样做时,我会得到更多的重复信息...我猜这是同一根问题的一部分。 / p>
答案 0 :(得分:1)
问题在于您要按CREATE_DATE分组,但要按年份和季度分组:
SELECT
DATENAME(year, CREATE_DATE) + ' Qtr' + DATENAME(quarter, CREATE_DATE) AS Period,
COUNT(*) AS NumberOfRecords
FROM HISTORY
GROUP BY DATENAME(year, CREATE_DATE), DATENAME(quarter, CREATE_DATE)
ORDER BY Period;