sql >> Databasteknik >  >> RDS >> Mysql

hitta maximal uppsättning kolumner för flera rader i mysql-frågan

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


REDIGERA Och nu till en version som FUNGERAR i MySQL...

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

REDIGERA Efter åtkomst till SQL, kan bekräfta att detta är snabbare...

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. Hur använder man en Oracle Ref Cursor från C# ODP.NET som en ReturnValue-parameter, utan att använda en lagrad funktion eller procedur?

  2. Välj uttalande för att hitta dubbletter på vissa fält

  3. MySQL-fråga för att välja resultat med automatisk ökning som en ny kolumn som läggs till i resultatet

  4. Använd MySQL relationsdatabaser på Fedora 12