Mysql
 sql >> база данни >  >> RDS >> Mysql

намерете максималния набор от колони за множество редове в 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


РЕДАКТИРАНЕ А сега за версия, която РАБОТИ в MySQL...

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

РЕДАКТИРАНЕ След достъп до SQL, можете да потвърдите, че това е по-бързо...

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. mysql - някакъв начин да помогнете на пълнотекстово търсене с друг индекс?

  2. MySQL - мога ли да огранича максималното време, позволено за изпълнение на заявка?

  3. Инсталирайте съхранена процедура в множество бази данни

  4. Как да стартирам php скрипт автоматично всеки ден?

  5. Инструкция SHOW TABLES с множество стойности LIKE