我選擇的記錄可能包含重複項,我需要能夠爲不同的結果集分頁。SQL總行數(DENSE_RANK/DISTINCT)
目前,我有以下的(簡化)查詢:
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
返回正確的數量?
請問哪個版本的SQL Server正在使用? – 2014-09-22 09:02:56
@Used_By_Already,2005 – epoch 2014-09-22 09:03:35
我的確在爲此建議row_number(),請查看 – 2014-09-22 09:13:32