Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wybrać pojedynczy wiersz na podstawie maksymalnej wartości w wielu wierszach?

Możesz użyć not exists podzapytanie do odfiltrowania starszych rekordów:

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
                )
        )

który można również napisać w MySQL jako:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szybkość zapytań na podstawie kolejności kolumn

  2. Odmowa dostępu dla użytkownika „root”@„localhost” podczas próby nadania uprawnień. Jak nadawać uprawnienia?

  3. Jak skopiować wiersz i wstawić do tej samej tabeli z polem autoinkrementacji w MySQL?

  4. PHP :wstaw kilka wartości pól wyboru do jednej kolumny MySQL

  5. Zapytanie SQL do utworzenia tabeli w MySQL