【发布时间】:2016-06-10 18:30:00
【问题描述】:
SELECT
someColumnA,
someColumnB,
FROM someTable
[A COUPLE JOINS HERE]
[A NICE WHERE STATEMENT]
ORDER BY someColumnA DESC
假设这个查询返回 1000 个结果。当我应用 DISTINCT 时,它会压缩为 300。
我想要做的只是使用分页返回 10 个结果来向我的用户预知,我想包括 DISTINCT ROWS 的总数。如果我在选择中添加带有计数的分页,它将返回 DISTINCT 之前的行数。
这是我到目前为止的最后一个查询
SELECT DISTINCT
count(*) OVER() as total,
someColumnA,
someColumnB,
FROM someTable
[A COUPLE JOINS HERE]
[A NICE WHERE STATEMENT]
ORDER BY someColumnA DESC
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
total = 1000 而不是我想要的 300。有没有一种简单的方法来实现这一点,还是我必须求助于使用子选择来获取所有 300 个不同的行,然后对其进行计数并获取前 10 个?
【问题讨论】:
标签: sql sql-server