«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как выбрать первую строку каждой группы в группе PostgreSQL по запросу?

Как выбрать первую строку каждой группы в группе PostgreSQL по запросу?

Опубликовано в 2025-02-10
Просматривать:206

How to Select the First Row of Each Group in a PostgreSQL GROUP BY Query?

. в PostgreSQL, выбор первой строки каждой группы в группе с помощью операции является распространенным требованием. Для этого мы можем использовать мощный отличный на

.

] выберите Disful On (Customer) ID, Customer, Total От покупок Заказ от клиента, Total Desc

SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC
, позволяет нам определить, какие выражения считаются дубликатами. В этом случае мы указываем столбец

Customer , который означает, что только строки с одним и тем же значением будут считаться дубликатами. ] порядок BY

определяет порядок, в котором обрабатываются строки. Первая строка в каждой группе

Customer будет строкой с наибольшим общим значением. Если несколько строк имеют одинаковое максимальное общее значение, решающим фактором будет порядок, в котором определены столбцы id . ] ключевые точки

]

отличается от
    - это расширение PostgreSQL, которое позволяет нам указать, какие выражения определяют дубликаты.
  • ] различное на
  • должно соответствовать ведущему выражению в положении
  • by . ] порядок BY
  • может использоваться для определения приоритета каждой группы в линии.
  • ] вы можете включить выражения, которые не находятся в положении на
  • или
  • user by в списке select . ] индекс, используемый в запросе, будет значительно повлиять на производительность. Многоколонный индекс, охватывающий Customer
  • ,
  • otting и id столбцы в том же порядке, что и запрос, обеспечит наилучшую производительность. ] ]
  • Дополнительные инструкции

] ] Метод отличается от

очень эффективен для данных с высокой кардинальностью столбца (небольшое количество строк на одного клиента). Однако для данных с более низкой кардинальностью

Customer Columns (большое количество строк на одного клиента), другие методы запроса могут быть более эффективными. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3