sql >> Database >  >> RDS >> Mysql

Hoe kan ik rijen SELECTEREN met MAX (kolomwaarde), DISTINCT door MEERDERE kolommen in SQL

Een typische methode gebruikt een gecorreleerde subquery:

select t.*
from t
where t.date = (select max(t2.date) from t t2 where t2.env = t.env);

Misschien is een iets betere methode:

select t.*
from t
where t.id = (select t2.id
              from t t2 
              where t2.env = t.env
              order by t2.date desc, t2.id desc
              limit 1
             );

Dit is iets beter omdat (1) id is waarschijnlijk een primaire sleutel, dus de match is sneller; en (2) als er meerdere rijen op dezelfde datum zijn, wordt er slechts één rij geretourneerd.



  1. MySQL-query om rijen te retourneren die gelijk zijn aan of groter zijn dan een bepaalde datum, waarbij de datum is gescheiden in kolommen voor jaar, maand en dag

  2. Hoe kan ik ervoor zorgen dat emacs sql-mode het mysql-configuratiebestand (.my.cnf) gebruikt?

  3. connect ECONNREFUSED - node js , sql

  4. een opgeslagen proces aanroepen via een dblink