【发布时间】:2011-11-08 16:49:03
【问题描述】:
我正在使用this 问题的解决方案对我的数据进行分页。
我现在需要将此解决方案用于更复杂的查询。 IE。括号内的SELECT 具有连接和聚合函数。
这是我用作参考的解决方案:
;WITH Results_CTE AS
(
SELECT
Col1, Col2, ...,
ROW_NUMBER() OVER (ORDER BY SortCol1, SortCol2, ...) AS RowNum
FROM Table
WHERE <whatever>
)
SELECT *
FROM Results_CTE
WHERE RowNum >= @Offset
AND RowNum < @Offset + @Limit
我需要合并到上述解决方案中的查询:
SELECT users.indicator, COUNT(*) as 'queries' FROM queries
INNER JOIN calls ON queries.call_id = calls.id
INNER JOIN users ON calls.user_id = users.id
WHERE queries.isresolved=0 AND users.indicator='ind1'
GROUP BY users.indicator ORDER BY queries DESC
我怎样才能做到这一点?到目前为止,我已经通过删除ORDER BY queries DESC 部分并将其放在ROW_NUMBER() OVER (ORDER BY ...) AS RowNum 行中使其工作,但是当我这样做时,它不允许我按该列排序(“无效的列名'查询'。 ")。
我需要做什么才能让它按此列排序?
编辑:使用 SQL Server 2008
【问题讨论】:
标签: sql sql-server tsql pagination