select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额
from T
ORDER BY 投资总额 desc

解决方案 »

  1.   

    WITH T AS (
    SELECT user_id,sum(投资金额) 投资总额
    FROM table1
    group by user_id
    )
    select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额
    from T
    ORDER BY 投资总额 desc
      

  2.   


    感谢  !  可以解释下WITH是什么吗?怎么用?为什么要这么用?
      

  3.   


    感谢  !  可以解释下WITH是什么吗?怎么用?为什么要这么用?
      

  4.   


    感谢  !  可以解释下WITH是什么吗?怎么用?为什么要这么用?
      

  5.   

    with 你可以简单理解成利用sql语句在内存中创建了一个临时视图,供后面的查询语句调用
    上面的写法等价于下面的写法
    select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额
    from (
    SELECT user_id,sum(投资金额) 投资总额
    FROM table1
    group by user_id
    )  T
    ORDER BY 投资总额 desc
      

  6.   

    select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额,最后投资时间
    from (
    SELECT user_id,sum(投资金额) 投资总额,max(投资时间)  最后投资时间
    FROM table1
    group by user_id
    )  T
    ORDER BY 投资总额 desc
      

  7.   

    select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额,最后投资时间
    from (
    SELECT user_id,sum(投资金额) 投资总额,max(投资时间)  最后投资时间
    FROM table1
    group by user_id
    )  T
    ORDER BY 投资总额 desc