rows работает со строками, а range c диапазоном.
О каком диапазоне речь? Догадываюсь, что диапазоном называют строки, в которых значение (из поля order by) равно значению текущей строке. Если это действительно так, то тогда здесь что является диапазоном?:
count(*) over (order by test range between 1 preceding and 2 following)