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

znajdź maksymalny zestaw kolumn dla wielu wierszy w zapytaniu mysql

SELECT
  *
FROM
(
  SELECT
    ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Year DESC, Month DESC) AS row_number,
    *
  FROM
    myTable
)
  AS orderedTable
WHERE
  row_number = 1


EDYTUJ A teraz wersja, która DZIAŁA w MySQL...

SELECT
  *
FROM
  myTable
WHERE
  Year * 12 + Month = (SELECT MAX(Year * 12 + Month) FROM myTable AS lookup WHERE Code = myTable.Code)

EDYTUJ Po uzyskaniu dostępu do SQL możesz potwierdzić, że jest to szybsze...

WHERE
    Year  = (SELECT MAX(Year)  FROM myTable AS lookup WHERE Code = myTable.Code)
AND Month = (SELECT MAX(Month) FROM myTable AS lookup WHERE Code = myTable.Code AND Year = myTable.Year)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cloud SQL lub instancja maszyny wirtualnej do hostowania bazy danych MySQL

  2. Relacja tabeli dla podtypów

  3. Jak wykonać 2 lub więcej zapytań SQL w PHP bez łączenia tabel

  4. async i czekaj na wywołanie MySQL w węźle js

  5. Gdzie powinienem przechowywać parametry połączenia z bazą danych?