sql >> データベース >  >> RDS >> Mysql

他の列からの順序に基づいて、グループから1つの値を選択します

    SELECT g, a, b, v
      FROM (
                SELECT *, 
                       @rn := IF(g = @g, @rn + 1, 1) rn, 
                       @g := g
                  FROM (select @g := null, @rn := 0) x, 
                       tab
              ORDER BY g, a desc, b desc, v
           ) X
     WHERE rn = 1;
    

    シングルパス。他のすべてのソリューションは、私にはO(n ^ 2)に見えます。



    1. SQLite VACUUM

    2. XMLとMySQLデータベースの使用の違いはどこにありますか?どちらを使うべきですか?

    3. SQL ServerのCONCAT_WS()

    4. MySQLのパフォーマンス:MyISAMとInnoDB