Heim >Datenbank >MySQL-Tutorial >Wie wähle ich die erste Zeile jeder Gruppe in SQL mit ROW_NUMBER() aus?

Wie wähle ich die erste Zeile jeder Gruppe in SQL mit ROW_NUMBER() aus?

Susan Sarandon
Susan SarandonOriginal
2025-01-22 06:13:14640Durchsuche

How to Select the First Row of Each Group in SQL Using ROW_NUMBER()?

Erhalten Sie die erste Zeile mit Datensätzen für jede Gruppe

In SQL ist das Abrufen des ersten Datensatzes jeder eindeutigen Gruppierung eine häufige Aufgabe. Betrachten Sie diese Situation: Wir haben zwei Tabellen, SM_Employee und SM_SalesRepWorkflow. Durch die Kombination dieser beiden Tabellen möchten wir die erste Informationszeile aus SM_SalesRepWorkflow für jeden Vertriebsmitarbeiter für den aktuellen Monat und das aktuelle Jahr auswählen, sortiert nach SalesRepId.

Um dies zu erreichen, können wir die Funktionalität der Funktion ROW_NUMBER() nutzen. Hier ist eine detaillierte Erklärung der Abfrage:

<code class="language-sql">SELECT *
FROM(
  SELECT workflowid,
         salesRepId,
         quantityAssigned,
         quantityLeft,
         month,
         year,
         ROW_NUMBER()
           OVER (PARTITION BY salesRepId ORDER BY workflowid) AS rownumber
  FROM sm_salesRepWorkflow
)
WHERE rownumber = 1;</code>
  • Die Unterabfrage berechnet die Zeilennummer für jeden Vertriebsmitarbeiter basierend auf salesRepId und sortiert nach Workflow-ID in aufsteigender Reihenfolge.
  • Die Hauptabfrage filtert dann die Unterabfrage so, dass nur Zeilen mit Zeilennummer 1 enthalten sind, um sicherzustellen, dass wir für jede salesRepId die erste Zeile abrufen.

Durch die Verwendung der Funktion ROW_NUMBER() können wir den Anfangsdatensatz für jeden Vertriebsmitarbeiter effizient auswählen und dabei die angegebenen Bedingungen einhalten. Diese Technik ist in verschiedenen Szenarien nützlich, in denen Sie die erste Zeile jeder Gruppe gruppieren und auswählen müssen.

Das obige ist der detaillierte Inhalt vonWie wähle ich die erste Zeile jeder Gruppe in SQL mit ROW_NUMBER() aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn