Heim > Datenbank > MySQL-Tutorial > Wie finde ich die aktuellste Position und ID für jedes Wertpapier in einer Datenbank?

Wie finde ich die aktuellste Position und ID für jedes Wertpapier in einer Datenbank?

Susan Sarandon
Freigeben: 2025-01-04 13:33:39
Original
692 Leute haben es durchsucht

How to Find the Most Recent Position and ID for Each Security in a Database?

Gruppenweises Maximum

Problem:

Rufen Sie die neueste Position und die entsprechende ID für jedes Wertpapier in einer Tabelle mit mehreren Wertpapieren ab Positionen mit gleicher Sicherheit.

Daten Tabelle:

id security buy_date
26 PCS 2012-02-08
27 PCS 2013-01-19
28 RDN 2012-04-17
29 RDN 2012-05-19
30 RDN 2012-08-18
31 RDN 2012-09-19
32 HK 2012-09-25
33 HK 2012-11-13
34 HK 2013-01-19
35 SGI 2013-01-17
36 SGI 2013-02-16
18084 KERX 2013-02-20
18249 KERX 0000-00-00

Lösung:

Verwendung eines LEFT JOIN und NULL-Filterung:

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

In dieser Abfrage verwenden wir einen LEFT JOIN, um die Positionstabelle mit sich selbst zusammenzuführen und Zeilen nach Sicherheit abzugleichen. Die Bedingung p1.buy_date < p2.buy_date stellt sicher, dass p2 eine neuere Position für dasselbe Wertpapier darstellt.

Die WHERE-Klausel filtert dann alle Zeilen heraus, in denen eine neuere Position vorhanden ist, sodass wir nur die neueste Position für jedes Wertpapier haben.

Ergebnisse:

id security buy_date
27 PCS 2013-01-19
31 RDN 2012-09-19
34 HK 2013-01-19
36 SGI 2013-02-16
18084 KERX 2013-02-20

Das obige ist der detaillierte Inhalt vonWie finde ich die aktuellste Position und ID für jedes Wertpapier in einer Datenbank?. 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