我正在选择可能包含重复的记录,我需要能够对不同的结果集进行分页。
目前,我有以下(简化的)查询:
SELECT pagiWrapper.* FROM (
SELECT DISTINCT alias.id
, alias.name
, DENSE_RANK() OVER (ORDER BY alias.name ASC) AS 'paginationRowNo'
, COUNT(*) OVER(PARTITION BY 1) AS 'paginationTotalRows'
FROM MyTable alias
LEFT JOIN MyTableTwo alias2 ON alias2.id = alias.id
WHERE ( /* condition */)
) pagiWrapper WHERE pagiWrapper.paginationRowNo > 0 AND pagiWrapper.paginationRowNo <= 15
此结果集中有 10 条记录,但DISTINCT
正确返回 3 条,并DENSE_RANK
正确标记它们1
、2
和3
我的问题paginationTotalRows
仍然是返回 10 个(包含原始重复项)结果集计数,如何修改查询以paginationTotalRows
返回正确的数量?