Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit MySQLs „MAX()' und „GROUP BY' effizient die neueste „pid' für jedes eindeutige „rid' abrufen?

Wie kann ich mit MySQLs „MAX()' und „GROUP BY' effizient die neueste „pid' für jedes eindeutige „rid' abrufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-01 00:16:09261Durchsuche

How to Efficiently Retrieve the Latest `pid` for Each Unique `rid` Using MySQL's `MAX()` and `GROUP BY`?

MySQL-Abfrageoptimierung: MAX() und GROUP BY

Problem:

Gegeben ist eine Tabelle mit den Spalten PID und Zeitstempel , Kosten und RID besteht die Aufgabe darin, die PID der neuesten Zeile für jeden einzelnen RID abzurufen, wobei zu berücksichtigen ist, dass PID die primäre automatische Inkrementierung ist Schlüssel.

Ursprüngliche Abfrage:

Die folgende Abfrage ruft den maximalen Zeitstempel und die entsprechenden RID-Werte ab, gibt jedoch die neueste PID nicht korrekt zurück:

SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid

Lösung:

Um effektiv die neueste PID für jede Fahrt zu erhalten, eine Kombination Anzahl der Techniken ist erforderlich:

  1. Identifizieren Sie die maximalen Zeitstempel und entsprechenden Rid-Werte:

    SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
  2. Verknüpfen Sie die Originaltabelle mit dem maximalen Zeitstempel Ergebnisse:

    SELECT
        t.pid,
        t.cost,
        t.timestamp,
        t.rid
    FROM
        theTable AS t
    JOIN
        (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt
    ON
        t.rid = maxt.rid AND t.timestamp = maxt.maxt

Diese überarbeitete Abfrage ruft effektiv die PID, die Kosten, den Zeitstempel und das Rid der neuesten Zeile für jedes eindeutige Rid in der Originaltabelle ab.

Das obige ist der detaillierte Inhalt vonWie kann ich mit MySQLs „MAX()' und „GROUP BY' effizient die neueste „pid' für jedes eindeutige „rid' abrufen?. 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