UNION句があると、
SELECT 'foo', 1
UNION ALL
SELECT name,
row_number() OVER (PARTITION BY bar_id)
FROM bar_table
WHERE bar_id = 1
ORDER BY bar_id DESC
とか書いてもエラーになります。
答えはこちら。
SELECT 'foo', 1
UNION ALL
SELECT name, r_number FROM
(SELECT name,
row_number() OVER (PARTITION BY bar_id) AS r_number
FROM bar_table
WHERE bar_id = 1
ORDER BY bar_id DESC) AS temp_bar
ちなみにPostgreSQLでは最後の「AS temp_bar」をちゃんと付けないとエラーになりますが、ネットで見かけた記事ではORACLEだと別名をつけなくても動作しそうな感じでした。
(確認はしていません。)