„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie wähle ich die erste Zeile jeder Gruppe in einer Postgresql -Gruppe nach Abfrage aus?

Wie wähle ich die erste Zeile jeder Gruppe in einer Postgresql -Gruppe nach Abfrage aus?

Gepostet am 2025-02-10
Durchsuche:850

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

Wählen Sie die erste Zeile in der Gruppe nach Gruppe von PostgreSQL

In Postgresql ist die Auswahl der ersten Zeile jeder Gruppe in der Gruppe nach Operation eine übliche Anforderung. Um dies zu tun, können wir die mächtige Unterscheidungsmerkmal in Klausel verwenden.

SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC
Die

Unterscheidet über -Klausel erlaubt uns zu definieren, welche Ausdrücke als Duplikate angesehen werden. In diesem Fall geben wir die Spalte customer an, was bedeutet, dass nur mit demselben Customer Wert als Duplikate angesehen wird.

Die

order by -Klausel definiert die Reihenfolge, in der Zeilen verarbeitet werden. Die erste Zeile in jeder Gruppe Customer wird die Zeile mit dem höchsten Gesamtwert sein. Wenn mehrere Zeilen den gleichen maximalen Gesamtwert haben, ist der entscheidende Faktor die Reihenfolge, in der die id -Spalten definiert sind.

Schlüsselpunkte

  • unter ist eine Erweiterung von PostgreSQL, die es uns ermöglicht, anzugeben, welche Ausdrücke Duplikate bestimmen.
  • Der Ausdruck
  • Unterscheidet über muss mit dem führenden Ausdruck in der Klausel mit übereinstimmen.
  • Die
  • order by -Klausel kann verwendet werden, um die Priorität jeder Gruppe inline zu bestimmen.
  • Sie können Ausdrücke einfügen, die nicht in der -Scharnei in oder order by in der Liste ausgewählt .
  • Der von der Abfrage verwendete Index wirkt sich erheblich auf die Leistung aus. Ein Multi-Säulen-Index, der die Customer , Total und id in der gleichen Reihenfolge wie die Abfrage die beste Leistung liefert.

zusätzliche Anweisungen

Die -Methode ist für Daten mit einer hohen Kolumne -Kardinalität (eine kleine Anzahl von Zeilen pro Kunde) sehr effizient. Für Daten mit einer niedrigeren Kardinalität von Customer -Spalten (große Anzahl von Zeilen pro Kunde) können andere Abfrage -Techniken effizienter sein.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3