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;
date date ore_info1 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