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

find maksimum af sæt af kolonner for flere rækker i mysql-forespørgsel

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


REDIGER Og nu til en version, der VIRKER i MySQL...

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

REDIGER Efter adgang til SQL, kan bekræfte dette er hurtigere...

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. forbinde tabeller og transponere kolonner og rækker

  2. Hvordan vælger man flere kolonner med samme navn ved hjælp af JPA native forespørgsel?

  3. C#:Send en brugerdefineret type til en Oracle-lagret procedure

  4. SQL-forespørgsel viser ikke forventet resultat