我有一个表格,其中的行在特定日期内对某个类别有多次点击。像这样:
ID CatID Date Count
1 DADB 2011-11-04 00:00:00 3
2 DCBC 2011-11-04 00:00:00 9
3 DADH 2011-11-04 00:00:00 9
因此,要显示两个日期之间每个类别的总数,我会执行以下操作:
SELECT WebClicksCategory.CatID, sum(WebClicksCategory.Count) as Count
FROM [Web].[dbo].[WebClicksCategory]
WHERE Date >= '2011-04-17 00:00:00.000'
AND Date <= '2012-04-17 00:00:00.000'
GROUP BY WebClicksCategory.CatID
ORDER BY Count desc
但是,如果我想对这些结果进行分页并执行以下操作:
SELECT * FROM
( SELECT row_number() OVER (order by Count) AS rownum,
WebClicksCategory.CatID, sum(WebClicksCategory.Count) as Count
FROM [Web].[dbo].[WebClicksCategory]
WHERE Date >= '2011-04-17 00:00:00.000'
AND Date <= '2012-04-17 00:00:00.000'
GROUP BY WebClicksCategory.CatID
) AS A
WHERE A.rownum BETWEEN (50) AND (200)
但是我得到一个'Column WebClicksCategory.Count 在选择列表中无效,因为它既不包含在聚合函数也不包含在 GROUP BY 子句中'错误。是否有另一种方法对结果进行分页?