sql >> Database >  >> RDS >> Mysql

vind maximum aantal kolommen voor meerdere rijen in mysql-query

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


BEWERKEN En nu voor een versie die WERKT in MySQL...

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

BEWERKEN Na toegang tot SQL, kan bevestigen dat dit sneller is...

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. 5 veelgemaakte fouten die u moet vermijden bij het ontdubbelen van uw gegevens

  2. Geheugencache versus MySQL in het geheugen

  3. Wat is het prestatieverschil in implementaties van MySQL relationele divisie (IN AND in plaats van IN OR)?

  4. Wat is de exacte locatie van MySQL-databasetabellen in de XAMPP-map?