數據執行分組查詢后,怎樣排定名次,次數相同的還要是相同名次

解决方案 »

  1.   

    sample:
    SELECT dept_id , name, salary, RANK() OVER (PARTITION BY dept_id ORDER BY e.salary) as RankNumber
    FROM employees 
      

  2.   

    如下查询分组是按照ID来的,排序按照插入时间,rn就是你所要的排名的名次.这个是升序排列的:SELECT m.*,
           row_number() over(PARTITION BY id ORDER BY insert_time) rn
    FROM table_test m
      

  3.   

    如下查询分组是按照ID来的,排序按照插入时间,rn就是你所要的排名的名次.这个是升序排列的:SELECT m.*,
           row_number() over(PARTITION BY id ORDER BY insert_time) rn
    FROM table_test m
      

  4.   

    row_number over(partition by  分组字段 order by 排名顺序字段) 为单一排名
    dense_rank over(partition by  分组字段 order by 排名顺序字段) 排名顺序字段相同,排名相同,下一排名不跳
    rank over(partition by  分组字段 order by 排名顺序字段) 排名顺序字段相同,排名相同,下一排名跳过(按并列的数目跳过相应的排名)