SQLServer2008クエリがあります
SELECT TOP 10 *
FROM T
WHERE ...
ORDER BY ...
行の総数も取得したいのですが。わかりやすい方法は、2番目のクエリを作成することです
SELECT COUNT(*)
FROM T
WHERE ...
ORDER BY ...
効率的な方法はありますか?
ありがとう
SQLServer2008クエリがあります
SELECT TOP 10 *
FROM T
WHERE ...
ORDER BY ...
行の総数も取得したいのですが。わかりやすい方法は、2番目のクエリを作成することです
SELECT COUNT(*)
FROM T
WHERE ...
ORDER BY ...
効率的な方法はありますか?
ありがとう
この答えにあるものはうまくいくようです:
https://stackoverflow.com/a/19125458/16241
基本的に、次のことを行います。
SELECT top 100 YourColumns, TotalCount = Count(*) Over()
From YourTable
Where SomeValue = 32
TotalCount には行の総数が含まれます。ただし、各行にリストされています。
これをテストしたところ、クエリ プランは、テーブルが 1 回しかヒットしていないことを示していました。
2番目のクエリからもORDERBY句を削除します。