【发布时间】:2018-07-15 23:01:52
【问题描述】:
我正在尝试返回表 HISTORY 中按季度和年份分组的记录总数。目前我有:
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 以防万一有助于识别问题。
我也不会认为我需要在句点列中指定 DISTINCT,但是当我不这样做时,我会得到更多的欺骗......我猜这是同一个根本问题的一部分。
【问题讨论】:
-
仔细看。代码做你写的,而不是你想要的。您按 create_date 分组,以便为 create_date 的每个唯一值获得一行。您仅显示由年份和季度组成的值这一事实不会影响您的分组。您需要按年份和季度分组。
标签: sql-server group-by aggregate-functions