sql >> Database >  >> RDS >> Mysql

Haal de laatste datum uit gegroepeerde MySQL-gegevens

Bent u op zoek naar de maximale datum voor elk model?

SELECT model, max(date) FROM doc
GROUP BY model

Als u op zoek bent naar alle modellen die overeenkomen met de maximale datum van de hele tafel...

SELECT model, date FROM doc
WHERE date IN (SELECT max(date) FROM doc)

[--- Toegevoegd ---]

Voor degenen die details willen weergeven van elk record dat overeenkomt met de laatste datum binnen elke modelgroep (geen samenvattingsgegevens, zoals gevraagd in de OP):

SELECT d.model, d.date, d.color, d.etc FROM doc d
WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model)

MySQL 8.0 en nieuwer ondersteunt de OVER clausule, waardoor dezelfde resultaten iets sneller worden geproduceerd voor grotere datasets.

SELECT model, date, color, etc FROM (SELECT model, date, color, etc, 
  max(date) OVER (PARTITION BY model) max_date FROM doc) predoc 
WHERE date=max_date;


  1. SQL Server, de misleidende XLOCK &optimalisaties

  2. ORA-00054:resource bezet en verwerven met NOWAIT gespecificeerd

  3. Hoe QUARTER() werkt in MariaDB

  4. OGG-01224 Adres al in gebruik