sql >> Databáze >  >> RDS >> Mysql

najít maximum sady sloupců pro více řádků v dotazu 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


UPRAVIT A nyní k verzi, která FUNGUJE v MySQL...

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

UPRAVIT Po přístupu k SQL můžete potvrdit, že je to rychlejší...

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. Jak pivotovat neznámý počet sloupců a žádný agregát na SQL Server?

  2. Nejlepší způsob, jak vložit data JSON do MYSQL

  3. Jak najít všechny podřízené řádky v MySQL?

  4. Existuje ekvivalent .NET k newsequentialid() serveru SQL Server