Heim  >  Artikel  >  Datenbank  >  Wie rufe ich den ersten und letzten Datensatz aus gruppierten Ergebnissen in MySQL ab?

Wie rufe ich den ersten und letzten Datensatz aus gruppierten Ergebnissen in MySQL ab?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-10 06:22:02810Durchsuche

How to Retrieve the First and Last Records from Grouped Results in MySQL?

Abrufen der ersten und letzten Datensätze aus gruppierten Ergebnissen in MySQL

Abrufen der ersten und letzten Datensätze einer gruppierten Ergebnismenge in MySQL während Die Anwendung von Aggregatfunktionen kann eine Herausforderung sein. Betrachten Sie die folgende Abfrage:

SELECT MIN(low_price), MAX(high_price), open, close
FROM symbols
WHERE date BETWEEN (.. ..)
GROUP BY YEARWEEK(date)

Diese Abfrage gruppiert die Daten nach Woche und berechnet den minimalen Tiefstpreis, den maximalen Höchstpreis sowie die Eröffnungs- und Schlusswerte für jede Woche. Es werden jedoch nicht der erste und der letzte Datensatz innerhalb jeder Gruppe bereitgestellt.

Um dies zu erreichen, besteht ein Ansatz darin, die Funktionen GROUP_CONCAT und SUBSTRING_INDEX zu verwenden:

SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open
SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close

Diese Lösung ermöglicht es Ihnen Verketten Sie alle Öffnungs- und Schlusswerte für jede Gruppe, getrennt durch Kommas, und extrahieren Sie dann den ersten und letzten Wert mit SUBSTRING_INDEX. Dieser Ansatz vermeidet teure Unterabfragen und kann für dieses spezielle Problem effizienter sein.

Weitere Informationen zu den Funktionen GROUP_CONCAT und SUBSTRING_INDEX finden Sie in der MySQL-Dokumentation. Darüber hinaus können Sie je nach den spezifischen Anforderungen Ihrer Abfrage andere Optionen wie die Verwendung von Fensterfunktionen oder benutzerdefinierten Funktionen erkunden.

Das obige ist der detaillierte Inhalt vonWie rufe ich den ersten und letzten Datensatz aus gruppierten Ergebnissen in MySQL ab?. 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