`
yxx676229549
  • 浏览: 72106 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rank() over

 
阅读更多

查询同一个用户下,最近时间订购(最近一次操作) 的集合

 

不适用rank() over 

SELECT COUNT(*)
FROM (
	SELECT t1.*, t2.createtime
	FROM i_Order_Relation_Log t1, i_ismp_sp_engine_log t2
	WHERE t1.streamingno = t2.streamingno
) tt1
WHERE tt1.createtime = (
		SELECT MAX(createtime)
		FROM (
			SELECT t1.*, t2.createtime
			FROM i_Order_Relation_Log t1, i_ismp_sp_engine_log t2
			WHERE t1.streamingno = t2.streamingno
		) tt2
		WHERE tt2.userid = tt1.userid
		)
	AND tt1.optype = '0'

  查询时间:多次测试大概在 0.8-0.9 之间

适用rank() over 

SELECT COUNT(*)
FROM (
	SELECT t.*, RANK() OVER (PARTITION BY userid ORDER BY createtime DESC) AS ran
	FROM (
		SELECT t1.*, t2.createtime
		FROM i_Order_Relation_Log t1, i_ismp_sp_engine_log t2
		WHERE t1.streamingno = t2.streamingno
	) t
) tt
WHERE tt.ran = 1
	AND tt.optype = '0'

 

   查询时间:多次测试大概在 1.0-1.1 之间

分享到:
评论

相关推荐

    RANK OVER()和ROW_NUMBER()OVER的使用

    介绍rank() over()分析函数和 row_number() over 的使用实例及其异同点

    Oracle中rank,over partition函数的使用方法

    本文主要介绍Oracle中rank,over partition函数的用法,希望对大家有所帮助。

    Oracle查询中OVER (PARTITION BY ..)用法

    一、rank()/dense_rank() over(partition by …order by …) 现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句: select e.ename, e.job, e.sal, ...

    over函数的使用

    Row_number() over()、rank() over()和dense_rank()over()函数的使用 Select * from (select name,class,s,rank() over(partition by class order by s desc) mm from t2) where mm=1; 说明: 1.在求第一名成绩的...

    Oracle开发之分析函数(Rank, Dense_rank, row_number)

    在前面一篇《Oracle开发之分析函数简介Over》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名 ②按区域和客户订单总额进行排名 ③找出订单总额排名前13位的客户 ④...

    postgreSQL窗口函数总结

    2 rank over 窗口函数使用 3 2.1 按照分区查看每行的个数 3 2.2 按照分区和排序查看每行的数据 4 2.3 查看每个部门最高的数据 4 3 row_number over 窗口函数的使用 5 3.1 显示数据的行号 5 3.1.1 顺序显示行号 5 ...

    oracle分析函数在BI分析中应用事例

    聚合函数可以是:sum,count,avg,max,min,first_value,last_value,rank,dense_rank ,row_number, ratio_to_report Over不能单独使用,用来制定数据窗口大小 Partition by表示分类数据集合,在此集合上的运算 Order by...

    oracle常用分析函数与聚合函数的用法

     rank ( ) over ([partition by col] order by col ) dense_rank ( ) over ([partition by col] order by col ) rownumber ( ) over ( [partition by col] order by col ) rank() 是排名的函数,该函数组内...

    oracle 分析函数详解(有例子)

    1 Oracle开发专题之:分析函数 OVER 2 Oracle开发专题之:分析函数 Rank Dense rank row number 3 Oracle开发专题之:分析函数3 Top Bottom N First Last NTile 4 Oracle开发专题之:窗口函数 5 Oracle开发专题...

    SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法

    语法:ROW_NUMBER () OVER ( [ <partition> ] <order> ) 。备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。参数:<partition> :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区...

    oracle函数介绍(7) 非著名函数之分析函数.doc

    3、PERCENT_RANK() OVER([partition_clause] order_by_clause) 与CUME_DIST类似,本函数返回分组序列中各行在分组序列的相对位置。其返回值也是介于0到1之间,不过其起始值始终为0而终结值始终为1。 例如:SELECT ...

    ORACLE 常用分析函数

     ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值相同,而其后的序列值依旧递增,rank则是重复值所在行的序列值相同,但其后的序列值从...

    SQL 关于记录排序 sqlserver

    雖然SQLserver有rank() over,Oracle卻沒有,而且以此為基本方法可以變化為多個相關的SQL,比如 update 更新,order by 排序 等等

    low-rank-ksvd.zip_Image Denoising via_kSVD denoise_ksvd matlab_l

    低秩的求解 denoise an image by sparsely representing each block with the already overcomplete trained Dictionary, and averaging the represented parts. ... representations over Learned Dictionaries

    CP tensor-based compression of hyperspectral

    Our experimental results on real three HSIs demonstrate the superiority of the proposed CPTBC method over several well-known compression approaches and the average PSNR improvements of the proposed ...

    oracle排名函数的使用方法分享

    在oracle中,有rank,dense_rank,row_number,以及分组排名partition。 说明: rank:排名会出现并列第n名,它...row_number() over(partition by bb.channel_name order by sum(aa.dk_serv_num) desc nulls last) p1_ra

    aql常用语句

    select t.* , px = rank() over(order by [平均成绩] desc) from ( select m.Sno [学生编号] , m.Sname [学生姓名] , isnull(cast(avg(score) as decimal(18,2)),0) [平均成绩] from Student m left join SC n on m...

    Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK() 类似,不过RANK 排序的时候跟派名次一样,...

    深入浅出Oracle分析函数

    目录 Oracle开发专题之:分析函数(OVER) Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) Oracle开发专题之:分析函数3(Top/Bottom N、First/Last、NTile) Oracle开发专题之:窗口函数 ...

Global site tag (gtag.js) - Google Analytics