count(*) の最大値を制限して、N 行が見つかった後に行のカウントを停止する方法はありますか?
SET ROWCOUNT NとTOP Nの両方を試しましたが、 SELECT count(*) FROM MyTable を使用すると無視されます。
count(*) の最大値を制限して、N 行が見つかった後に行のカウントを停止する方法はありますか?
SET ROWCOUNT NとTOP Nの両方を試しましたが、 SELECT count(*) FROM MyTable を使用すると無視されます。
SELECT Count(*)
FROM (
SELECT TOP(@MaxRowCount) *
FROM MyTable
) as q
WITH
を割り当てるために各行を反復する必要があるため、ソリューションのパフォーマンスが低下する可能性があると思いますROW_NUMBER()
。ここでの解決策はより良いパフォーマンスを発揮すると思います。
私は自分で解決策を見つけました。
With OrderedRows AS(
SELECT ROW_NUMBER() OVER (ORDER BY SomeColumn) AS RowNumber
FROM MyTable
)
SELECT count(*) FROM OrderedRows WHERE RowNumber <= @MaxRowCount;
カウントを行った後に IF ステートメントでそれを行いませんか?
それともサブクエリですか?
select count(*) as usercount from users where userid in (ユーザーから上位 5000 のユーザー ID を選択)
これにより、5000 以下の潜在的なユーザー数が得られます。