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

結果をmysqlでランク付けします(Oracleの「dense_rank()」または「row_number()」関数に相当するmysql)

    速いのにタイピングがずっと少ないように思えるならDunno...

    SELECT x.*
         , IF(@prev = dept_id
                    , IF(salary <> @psalary,@i:[email protected]+1,@i:[email protected])
             ,@i:=1) rank
         , @psalary := salary
         , @prev := dept_id prev 
      FROM my_table x
         , (SELECT @i:=1,@prev:='',@psalary:='') vars 
     ORDER 
        BY dept_id,salary;
    



    1. ユーザーpostgresを作成できません:ロールpostgresが存在しません

    2. PLSQL:NEWおよび:OLD

    3. postgresqlデータベースにMrjobとHadoopを取り込む方法

    4. SQL Server 2008 R2 がシングル ユーザー モードでスタックする