Heim > Datenbank > MySQL-Tutorial > Wie kann ich mithilfe von SQL effizient die aktuelle Position für jedes Wertpapier abrufen?

Wie kann ich mithilfe von SQL effizient die aktuelle Position für jedes Wertpapier abrufen?

Linda Hamilton
Freigeben: 2025-01-04 18:11:42
Original
452 Leute haben es durchsucht

How to Efficiently Retrieve the Latest Position for Each Security Using SQL?

Gruppenweises Maximum: Abrufen der neuesten Position für jedes Wertpapier

Im bereitgestellten Datensatz möchten Sie die neueste Position für jedes Wertpapier abrufen. Sie haben versucht, eine Abfrage basierend auf der Aggregatfunktion MAX() zu verwenden, diese gibt jedoch nur eine einzelne Zeile zurück.

Um dieses Problem zu beheben, können Sie einen alternativen Ansatz verwenden, der LEFT JOIN verwendet. Nachfolgend finden Sie eine optimierte Abfrage, die effizient das erforderliche Ergebnis erzielt:

SELECT p1.id,
       p1.security,
       p1.buy_date
       FROM positions p1
left join
            positions p2
                on p1.security = p2.security
                   and p1.buy_date < p2.buy_date
      where
      p2.id is null;
Nach dem Login kopieren

Diese Abfrage führt einen äußeren Join der Tabelle mit sich selbst durch und schließt Zeilen aus, in denen ein späteres Kaufdatum für dasselbe Wertpapier vorliegt. Folglich wird für jedes Wertpapier eine einzelne Zeile mit dem letzten Kaufdatum zurückgegeben.

Durch die Verwendung dieses optimierten Ansatzes können Sie die Ausführungszeit der Abfrage erheblich reduzieren und die gewünschten Informationen effizient abrufen.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SQL effizient die aktuelle Position für jedes Wertpapier abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage