sql >> Database >  >> RDS >> Mysql

mysql:groepeer op ID, krijg de hoogste prioriteit per ID

Hoewel dit misschien het 'geaccepteerde' antwoord is, zijn de prestaties van Marks oplossing is onder normale omstandigheden vele malen beter, en evenzeer geldig voor de vraag, dus ga in ieder geval voor zijn oplossing in productie!

SELECT a.id, a.vehicle_id, a.filename, a.priority
FROM pics a
LEFT JOIN pics b               -- JOIN for priority
ON b.vehicle_id = a.vehicle_id 
AND b.priority > a.priority
LEFT JOIN pics c               -- JOIN for priority ties
ON c.vehicle_id = a.vehicle_id 
AND c.priority = a.priority 
AND c.id < a.id
WHERE b.id IS NULL AND c.id IS NULL

Ervan uitgaande dat 'id' een niet-nulbare kolom is.

[edit]:my bad, tweede lid nodig, kan het niet met slechts één.



  1. IntegrityError dubbele sleutelwaarde schendt unieke beperking - django/postgres

  2. VARCHAR als externe sleutel/primaire sleutel in database goed of slecht?

  3. Hoe te ontsnappen aan het vraagteken (?) -teken met Spring JpaRepository

  4. SCD-type 2