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

Wie wähle ich die erste Zeile jeder Gruppe in SQL aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-22 06:05:08717Durchsuche

How to Select the First Row of Each Group in SQL?

Wählen Sie die erste Zeile jeder Gruppe in SQL aus

Bei der Datenbankverwaltung ist es häufig erforderlich, bestimmte Datensätze zur Analyse oder Berichterstellung abzurufen. Dazu gehört die Auswahl der ersten Zeile jeder Datensatzgruppe in der Tabelle.

Angenommen, Sie haben zwei Tabellen:

  • SM_Employee (Employeeid, Roleid, Storeid)
  • SM_SalesRepWorkflow (Workflow-ID, Verkaufsrepid, zugewiesene Menge, verbleibende Menge, Monat, Jahr)

Frage:

Ihre Aufgabe besteht darin, die erste Zeile mit Details für jeden Vertriebsmitarbeiter (SalesRepId) in der Tabelle SM_SalesRepWorkflow für den aktuellen Monat und das aktuelle Jahr auszuwählen.

Lösung:

Hierfür können Sie die Funktion ROW_NUMBER() in SQL verwenden:

<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
) AS subquery
WHERE rownumber = 1;</code>

Erklärung:

  • Die äußere Abfrage weist jedem Datensatz eine Zeilennummer zu, unterteilt ihn nach SalesRepId-Spalte und sortiert nach Workflow-ID in aufsteigender Reihenfolge.
  • Die WHERE-Klausel filtert die Ergebnisse so, dass nur der erste Datensatz jeder SalesRepId enthalten ist.

Diese Abfrage identifiziert effektiv die erste Datensatzzeile für jeden Vertriebsmitarbeiter im angegebenen Monat und Jahr. Es liefert eine prägnante Ausgabe, wie in der Problemstellung gezeigt:

  • WF_101: EMP_101: 100: 90: Mai: 2013
  • WF_101: EMP_102: 100: 100: Mai: 2013
  • WF_101: EMP_103: 100: 80: Mai: 2013

Durch die Anwendung der Funktion ROW_NUMBER() können Sie effizient die erste Datenzeile für jede Gruppierung in der Tabelle zur weiteren Analyse oder Berichterstellung basierend auf den erforderlichen Parametern abrufen.

Das obige ist der detaillierte Inhalt vonWie wähle ich die erste Zeile jeder Gruppe in SQL 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