postgresql: извлечение последней строки для каждого уникального идентификатора
В Postgresql вы можете столкнуться с ситуациями, где вам необходимо извлечь информацию из последней строки, связанного с каждым отдельным идентификатором в данном данных. Рассмотрим следующие данные:
select distinct on (id) id, date, another_info from the_table order by id, date desc;
] Этот запрос вернет следующий вывод:
select id, date, another_info from ( select id, date, another_info, row_number() over (partition by id order by date desc) as rn from the_table ) t where rn = 1 order by id;1 2014-05-13 Kgfd
2 2014-02-01 SADA
. Решение по перекрестной датабазе, которое может пожертвовать небольшой производительностью, вы можете использовать функцию окна:]
выберите идентификатор, дата, другой_инфо
от (
Выберите идентификатор, дата, другой_инфо,
row_number () Over (раздел по идентификационному порядку по дате desc) как rn
от the_table
) т
где rn = 1
Заказ от id;
В большинстве случаев решение с участием оконной функции быстрее, чем использование подрегистрирования.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3