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. クエリでmysqlフルテキストストップワードを無視する

    2. Springjdbcoracleを使用したセッションタイムゾーンの設定

    3. mysqlパスワードが私のダンプを台無しにしています

    4. テーブルを削除できません:外部キー制約が失敗します