sql >> Databasteknik >  >> RDS >> Mysql

MySQL väljer max rekord i grupp av

Mycket information på http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

Detta har alltid varit ett irriterande problem i MySQL. Det har funnits sätt att kringgå det, som att sammanfoga flera fält tillsammans (börjar med extern_id), och sedan välja MAX() för det och sedan bryta isär det igen.

Jag föreslår att du använder en härledd tabell. Den första tabellen (t1) härleds från en enkel fråga där du identifierar MAX(external_id) , sedan går du med från det för att få resten av data.

DETTA ÄR ENDAST OM external_id ÄR UNIK

SELECT 
   t1.group_id, some_table.id, some_table.mypath
FROM 
   (
      SELECT group_id, MAX(external_id) AS external_id
      FROM some_table
      GROUP BY group_id
   ) as t1
INNER JOIN 
   sometable ON t1.external_id = sometable.external_id
WHERE ...



  1. Hur kan jag gå igenom alla rader i en tabell? (MySQL)

  2. Hur man väljer den senaste uppsättningen daterade poster från en mysql-tabell

  3. mysql:Vad är rätt syntax för NOT LIKE?

  4. lagra mp3-filer i mysql