Oracle中利用over函数分组求和,以t_name分组,以t_date排序
SELECT id,t_name,t_date,row_number()over(PARTITION BY t_name ORDER BY t_date DESC) rntime
FROM over_test

MySQL中
SELECT result.id,result.t_name,result.t_date,result.rank rtime FROM (
SELECT b.id,b.t_name,b.t_date,@rownum:=@rownum+1 ,
IF(@t_name=b.t_name,@rank:=@rank+1,@rank:=1) AS rank,
@t_name:=b.t_name
FROM (
SELECT id,t_name,t_date FROM OVER_TEST ORDER BY t_name ASC ,t_date DESC
) b,
(SELECT @rownum :=0 , @t_name := NULL ,@rank:=0) a
) result;

SELECT id,t_name,t_date,row_number()over(PARTITION BY t_name ORDER BY t_date DESC) rntime
FROM over_test

MySQL中
SELECT result.id,result.t_name,result.t_date,result.rank rtime FROM (
SELECT b.id,b.t_name,b.t_date,@rownum:=@rownum+1 ,
IF(@t_name=b.t_name,@rank:=@rank+1,@rank:=1) AS rank,
@t_name:=b.t_name
FROM (
SELECT id,t_name,t_date FROM OVER_TEST ORDER BY t_name ASC ,t_date DESC
) b,
(SELECT @rownum :=0 , @t_name := NULL ,@rank:=0) a
) result;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29320885/viewspace-1749472/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29320885/viewspace-1749472/
本文详细介绍了在Oracle和MySQL数据库中如何使用OVER函数进行分组求和并按特定字段排序的方法。通过具体实例展示了在SQL查询中灵活运用OVER函数来实现复杂的数据聚合与排序需求。

6742

被折叠的 条评论
为什么被折叠?



