- 浏览: 375206 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (314)
- java (132)
- 生活 (13)
- javase模式 (6)
- weblogic (4)
- jquery (5)
- sql (21)
- ecside (1)
- el (3)
- css (5)
- spring (7)
- ireport (2)
- linux (14)
- struts2 (2)
- jstl (1)
- rmi (1)
- rose (9)
- js (6)
- swing (4)
- webservice (1)
- jboss (1)
- ejb3 (2)
- xml (1)
- 线程 (9)
- socket (3)
- jms (2)
- tomcat (10)
- 领域驱动 (3)
- json (3)
- 权限 (2)
- jvm (1)
- 书籍 (1)
- eclipse RCP (0)
- 数据库设计 (10)
- 软件分析建模 (5)
- 分析建模 (3)
- hibernate jpa (5)
- Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等 (1)
- 项目管理 (2)
- 财务 (0)
- oracle (2)
- 需求 (2)
- rcp gef (0)
- c++ (1)
- hadoop (2)
- BIGDATA (3)
- c (6)
最新评论
-
lh_kevin:
...
jpa 注解 -
一别梦心:
你好,我也遇到此问题了。就你贴的那段代码,你说了两种解决方式, ...
Hibernate的Antlr在Weblogic中产生Jar冲突的历史缘故以及解决办法 -
fireinjava:
...
el表达式 -
宋建勇:
...
JSON: property "xxx" has no getter method in class "..." -
handawei:
有道理,jpa是orm框架的java标准,它关注的是对象到关系 ...
jpa 注解
cume_dist():
功能描述:计算一行在组中的相对位置,返回大于0 小于等于1的数,例如在一个4行组中,分布是1/4 ,2/4 ,3/4 ,4/4
如果有重复的就乘以重复的个数,如第一行和第二行重复 分布为 (1/4)*2,(1/4)*2, 3/4 ,4/4
下面是例子:
表 all_sales
select * from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ========================================= 1 2003 1 1 21 10034.84 2 2003 1 2 21 1034.84 3 2003 1 3 21 1034.84 4 2003 1 4 21 3034.84
运行sql: select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount asc) as cume_dist from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ================================ 1 2 1034.84 0.5 2 3 1034.84 0.5 3 4 3034.84 0.75 4 1 10034.84 1
PERCENT_RANK()是某个值相对于一组值的百分比排名,大于等于0 小于等于1
select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount asc) as cume_dist ,percent_rank() over(order by t.amount desc )as percent_rank from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ================================= 1 1 10034.84 1 0 2 4 3034.84 0.75 0.333333333333333 3 2 1034.84 0.5 0.666666666666667 4 3 1034.84 0.5 0.666666666666667
如果重复的话则记录的是小值,但是 cume_dist()记录的是大值。
NTILTE()函数记录N分片的值。
select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount asc) as cume_dist ,percent_rank() over(order by t.amount asc )as percent_rank ,NTILE(5) OVER(order by t.amount desc )as ntile from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ========================================= 1 1 10034.84 1 1 1 2 4 3034.84 0.75 0.666666666666667 2 3 2 1034.84 0.5 0 3 4 3 1034.84 0.5 0 4
select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount asc) as cume_dist ,percent_rank() over(order by t.amount asc )as percent_rank ,NTILE(3) OVER(order by t.amount desc )as ntile from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ============================== 1 1 10034.84 1 1 1 2 4 3034.84 0.75 0.666667 1 3 2 1034.84 0.5 0 2 4 3 1034.84 0.5 0 3
感觉是排名函数 并且固定了排名的总个数。
row_number():
从1开始为每个分组返回一个数字
select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount asc) as cume_dist ,percent_rank() over(order by t.amount asc )as percent_rank ,NTILE(2) OVER(order by t.amount desc )as ntile ,row_number() over(order by t.amount desc) as row_number from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ============================= 1 1 10034.84 1 1 1 1 2 4 3034.84 0.75 0.666667 1 2 3 2 1034.84 0.5 0 2 3 4 3 1034.84 0.5 0 2 4
Percentile_disc(x)和Percentile_cont(x)的作用与cume_dist()和percent_rank()相反:
与下面的sql正好相反:select
PERCENTILE_DISC(0.25) WITHIN GROUP(ORDER BY t.amount desc)
as percentile_disc
,
PERCENTILE_CONT(0.666666666666667) WITHIN GROUP(ORDER BY t.amount desc)
as percentile_cont
FROM all_sales t
where year =2003
and t.month =1
and t.amount is not null
and t.emp_id=21
==================================
1 10034.84 1034.84
select t.prd_type_id ,t.amount ,CUME_DIST() over (order by t.amount desc) as cume_dist ,percent_rank() over(order by t.amount desc )as percent_rank from all_sales t where t.year=2003 and t.month =1 and t.amount is not null and t.emp_id=21 ====================== 1 1 10034.84 0.25 0 XXXX U 2 4 3034.84 0.5 0.333333333333333 XXXX U 3 3 1034.84 1 0.666666666666667 XXXX U 4 2 1034.84 1 0.666666666666667 XXXX U
发表评论
-
关于Union 中 ORA-12704:字符集不匹配问题的解决 .
2012-11-05 18:23 4397zhuan:http://blog.csdn.net/lqh4 ... -
oracle解锁
2012-06-19 17:04 762查看锁表进程SQL语句1: select sess.sid, ... -
Oracle集合操作函数:Union、Intersect、Minus
2012-02-17 16:19 1256集合操作不适用于LOB,Varray和潜逃表列 Unio ... -
Merge用法:Oracle 10g中对Merge语句的增强
2012-02-17 16:05 1066Merge用 ... -
数据库优化
2011-12-19 14:17 825转:http://www.iteye.com/topic/11 ... -
导入导出,创建databaselink
2011-08-10 15:56 2091pl/sql导出表结构和表 ... -
oracle改错
2011-02-09 12:19 1336系统运行了一段时间 ... -
dba常用sql
2010-12-16 17:19 11331. 查看表空间的名称及大小 select t.tablesp ... -
Oracle语句优化53个规则详解(转载)
2010-12-15 11:41 819Oracle语句优化53个规则 ... -
表修改
2010-11-17 23:12 798使用 字符串中使用’ Insert into product ... -
报表函数
2010-11-17 22:06 765报表函数: 总计: select 1 ,t.month ... -
窗口函数
2010-11-16 21:32 970为计算一定的范围的累积和移动平均值,可以结合聚合函数使用:su ... -
orace评级函数
2010-11-14 23:43 889rank() over (order by XX): /* ... -
orcel sql 技巧
2010-11-14 23:05 1402转载:http://www.iteye.com/topic/8 ... -
oracle
2010-10-11 10:17 730今天没事来说说oracle性能优化的技巧。。 1.选用适合的 ... -
sql优化设定
2010-09-02 10:41 823select /*+RULE*/ m.daterunid ... -
ORACLE 中IN和EXISTS比较
2010-08-23 09:49 607EXISTS的执行流程 select * from ... -
rank over pation
2010-08-11 11:11 1204排列(rank())函数。这些排列函数提供了定义一个集合(使用 ... -
group
2010-05-30 16:50 758select t.startstncode ,sum ... -
查询优化
2010-04-08 10:14 1068一、SQL语句优化:1: exists ...
相关推荐
Orace Essbase数据仓库函数大全,具有详细的函数说明和使用方法
Orace与SQL常用函数对照,列举各种函数,包含用例,简洁而易上手!
oracle 常用函数,connect by用法,分页方法
oracle11g最新最全的官方帮助文档(chm格式).一共压缩成4卷。官方是html,pdf格式的。太大了。自己做成了chm格式的。方便阅读查阅.
Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算一个组和数据窗口内表达式的...
orace osb资料orace osb资料orace osb资料orace osb资料
orace性能优化
orace性能优化高级培训.rar orace性能优化高级培训.rar orace性能优化高级培训.rar
orace数据仓库
Orace PPT 02
Orace PPT 01
stampgis连接orace数据库监听配置
Orace基础经典,触发器,函数和数据类型,子程序和程序包,锁和表分区 ,数据库对象,PLSQL等。
Networker备份恢复ORACE RAC数据库操作文档
orace日常操作文档,对于新手来说足够了,要的赶紧拿走
ubuntu+python3+orace需要的包
该文档为32位系统下的Orace10g安装文档。内容详细,附带详细步骤解说及截图。
详细的Oracle10g RAC高可用性功能测试文档