Извлечение последней строки для каждого идентификатора в Postgresql
рассмотрим набор данных с столбцами с именем идентификатором, датой и другим_инфо. Цель состоит в том, чтобы извлечь последнюю информацию (строку) для каждого уникального идентификатора.
, чтобы выполнить это в PostgresQl, два метода обычно используются:
отличаются от оператора
postgresql обеспечивают различные на операторе, что позволяет вам указать, что в конкретных значениях. В этом случае оператор может использоваться следующим образом:
select distinct on (id) id, date, another_info from the_table order by id, date desc;
этот запрос гарантирует, что только последний экземпляр каждого уникального идентификатора возвращается, упорядочен в порядке убывания по дате. Функция окна позволяет вам выполнять расчеты или агрегации на разделенном наборе строк. В этом случае можно использовать следующий запрос:
выберите ID, дата, другой_инфо от ( Выберите идентификатор, дата, другой_инфо, row_number () Over (раздел по идентификационному порядку по дате desc) как rn от the_table ) т где rn = 1 Заказ от id; Этот запрос использует функцию Row_number () для назначения последовательного номера каждой строке в каждом разделе идентификатора. Предложение WHERE фильтрует результаты, чтобы включить только строки с наибольшим значением RN (то есть последняя строка для каждого идентификатора).
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3