У меня есть запрос:row_number() в PostgreSQL
select .....
from....
order by ....
Я хотел бы добавить номера строк в запросе.
Когда я прочитал о row_number()
это говорит о том, что синтаксис:
row_number() OVER(ORDER BY ...)
означает, что я должен сделать:
select row_number() OVER(ORDER BY ...) , .....
from....
order by ....
Это означает, что я должен дважды писать один и тот же ORDER BY
заявление.
Есть ли способ просто сделать что-то вроде:
select row_number() , .....
from....
order by ....
означает, что он будет принимать все для того, что было дано из запроса и просто добавить номера к ней.
Нет, это невозможно. Порядок сортировки, используемый в оконной функции, необязательно должен быть таким же, как и общий порядок сортировки. –
@a_horse_with_no_name У меня здесь нет postgresql, но он мог бы попробовать просто путем упорядочивания сгенерированного 'row_number()' (if это похоже на SQL Server, фаза ORDER BY находится ПОСЛЕ фазы SELECT, поэтому он может дать псевдоним сгенерированным «row_number()», а затем заказать на нем) – xanatos
@xanatos: ah, право, которое сработает. –