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

Sådan vælger du en enkelt række baseret på den maksimale værdi i flere rækker

Du kan bruge en not exists underforespørgsel for at bortfiltrere ældre poster:

select  *
from    YourTable yt
where   not exists
        (
        select  *
        from    YourTable older
        where   yt.name = older.name and 
                (
                    yt.major < older.major or
                    yt.major = older.major and yt.minor < older.minor or
                    yt.major = older.major and yt.minor = older.minor and
                        yt.revision < older.revision
                )
        )

som også kan skrives i MySQL som:

select  *
from    YourTable yt
where   not exists
        (
        select  *
        from    YourTable older
        where   yt.name = older.name and 
                  (yt.major,    yt.minor,    yt.revision) 
                < (older.major, older.major, older.revision)
        )


  1. Microsoft Access Table Tips – Tricks og retningslinjer Del 4

  2. Hvordan ændres MySQL-tidszone i en databaseforbindelse ved hjælp af Java?

  3. Hvad er PostgreSQL-ækvivalenten for ISNULL()

  4. Ret fejl "ORA-01789:forespørgselsblokken har forkert antal resultatkolonner"