sql >> Database teknologi >  >> RDS >> Mysql

MySQL SELECT id for række, hvor STØRSTE af MAX indgange i flere kolonner

en måde at gøre det på ville være at gemme din date i en brugerdefineret variabel. så kan du bruge det til at trække id'et ud for den største dato

SET @A := (SELECT GREATEST(
                     IFNULL(max(date1), 0),
                     IFNULL(max(date2), 0),
                     IFNULL(max(date3), 0)
                  ) FROM table1
           );
-- here i JOIN a select that pulls out the correct id
SELECT t.joinid, max(`date1`), max(`date2`), max(`date3`)
FROM table1
JOIN 
(   SELECT id as joinid 
    FROM table1
    WHERE @A IN -- WHERE my MAX date is in
    (
        SELECT date1 -- here the UNION is just putting all of the dates into one column to compare one date with
        UNION ALL SELECT date2
        UNION ALL SELECT date3
    )
) t -- every table must have an alias

FIDDLE DEMO



  1. CHAINLINK NODE:Hvordan kan jeg gribe det an, der ikke er i stand til at låse ORM-fejl?

  2. node.js oracledb indsætter eller opdaterer ikke

  3. To ejere af den samme PostgreSQL-database

  4. få tre poster i faldende rækkefølge af hver kategori ved hjælp af kodetænder