sql >> Database >  >> RDS >> Mysql

MySQL selecteren max record in groep door

Veel info op http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

Dit is altijd een vervelend probleem geweest in MySQL. Er zijn manieren om het te omzeilen, zoals het samenvoegen van verschillende velden (beginnend met external_id), en vervolgens de MAX() daarvan te selecteren en het vervolgens weer uit elkaar te halen.

Ik stel voor dat je een afgeleide tabel gebruikt. De eerste tabel (t1) is afgeleid van een eenvoudige query waarbij u de MAX(external_id) identificeert , dan doe je mee om de rest van de gegevens te krijgen.

DIT IS ALLEEN ALS external_id IS UNIEK

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. mysql update-query met subquery

  2. MySQL Verwijder dubbele records

  3. welke jdbc jar te gebruiken met oracle 11g &jdk 1.6 en hoe verbinding te maken met de db zelf

  4. .Net MySql-fout De opgegeven sleutel was niet aanwezig in het woordenboek