SELECT
someColumnA,
someColumnB,
FROM someTable
[A COUPLE JOINS HERE]
[A NICE WHERE STATEMENT]
ORDER BY someColumnA DESC
Предположим, что этот запрос возвращает 1000 результатов. Когда я применяю DISTINCT, он будет конденсироваться до 300.Как я могу получить подсчет количества отдельных строк перед поиском?
То, что я хочу сделать, - это вернуть только 10 результатов, используя пейджинг, чтобы совершить прелюдию для моих пользователей, и я хочу включить общее количество числа DISTINCT РЯДЫ. Если я добавлю пейджинг с подсчетом в select, он вернет количество строк до 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
всего = 1000, а не 300 я хочу. Есть ли простой способ выполнить это или мне придется прибегнуть к использованию подбора select для извлечения всех 300 различных строк, чтобы затем подсчитать это и получить первые 10?