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
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
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
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
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
SELECT user_id,sum(投资金额) 投资总额
FROM table1
group by user_id
)
select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额
from T
ORDER BY 投资总额 desc
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
感谢 ! 可以解释下WITH是什么吗?怎么用?为什么要这么用?
上面的写法等价于下面的写法
select row_number()over(order by 投资总额 desc) 名次,user_id,投资总额
from (
SELECT user_id,sum(投资金额) 投资总额
FROM table1
group by user_id
) T
ORDER BY 投资总额 desc
from (
SELECT user_id,sum(投资金额) 投资总额,max(投资时间) 最后投资时间
FROM table1
group by user_id
) T
ORDER BY 投资总额 desc
from (
SELECT user_id,sum(投资金额) 投资总额,max(投资时间) 最后投资时间
FROM table1
group by user_id
) T
ORDER BY 投资总额 desc