- 浏览: 385889 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 4456zhuan:http://blog.csdn.net/lqh4 ... -
oracle解锁
2012-06-19 17:04 796查看锁表进程SQL语句1: select sess.sid, ... -
Oracle集合操作函数:Union、Intersect、Minus
2012-02-17 16:19 1290集合操作不适用于LOB,Varray和潜逃表列 Unio ... -
Merge用法:Oracle 10g中对Merge语句的增强
2012-02-17 16:05 1100Merge用 ... -
数据库优化
2011-12-19 14:17 858转:http://www.iteye.com/topic/11 ... -
导入导出,创建databaselink
2011-08-10 15:56 2126pl/sql导出表结构和表 ... -
oracle改错
2011-02-09 12:19 1375系统运行了一段时间 ... -
dba常用sql
2010-12-16 17:19 11731. 查看表空间的名称及大小 select t.tablesp ... -
Oracle语句优化53个规则详解(转载)
2010-12-15 11:41 861Oracle语句优化53个规则 ... -
表修改
2010-11-17 23:12 839使用 字符串中使用’ Insert into product ... -
报表函数
2010-11-17 22:06 795报表函数: 总计: select 1 ,t.month ... -
窗口函数
2010-11-16 21:32 1022为计算一定的范围的累积和移动平均值,可以结合聚合函数使用:su ... -
orace评级函数
2010-11-14 23:43 920rank() over (order by XX): /* ... -
orcel sql 技巧
2010-11-14 23:05 1442转载:http://www.iteye.com/topic/8 ... -
oracle
2010-10-11 10:17 760今天没事来说说oracle性能优化的技巧。。 1.选用适合的 ... -
sql优化设定
2010-09-02 10:41 867select /*+RULE*/ m.daterunid ... -
ORACLE 中IN和EXISTS比较
2010-08-23 09:49 641EXISTS的执行流程 select * from ... -
rank over pation
2010-08-11 11:11 1241排列(rank())函数。这些排列函数提供了定义一个集合(使用 ... -
group
2010-05-30 16:50 775select t.startstncode ,sum ... -
查询优化
2010-04-08 10:14 1102一、SQL语句优化:1: exists ...
相关推荐
Orace Essbase数据仓库函数大全,具有详细的函数说明和使用方法
### Orace与SQL常用函数对照知识点详解 #### 一、ASCII 函数 - **功能**:返回与指定的字符相对应的十进制数值。 - **语法**:`ASCII(字符)` - **示例**: - `SELECT ASCII('A') A, ASCII('a') a, ASCII('0') zero...
Oracle数据库是世界上最广泛使用的数据库系统之一,其丰富的函数集使得数据处理变得更为高效。本压缩包文件"oracle常用函数.rar"包含了一些关于Oracle数据库的重要知识点,主要包括“connect by”用法、SQL优化以及...
### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对查询结果进行复杂的分析处理,而无需多次查询数据库或编写复杂的程序逻辑。这大大简化了开发人员的工作,尤其是在处理大数据...
orace性能优化
stampgis连接orace数据库监听配置
- Oracle提供了`MAX`, `MIN`, `AVG`, `SUM`, `COUNT`等聚合函数用于数据统计,如:`SELECT MAX(sal), MIN(sal) FROM emp;` - 结合`GROUP BY`子句进行分组统计,如:`SELECT AVG(sal), MAX(sal), deptno FROM emp ...
Oracle RAC,全称为Real Application Clusters,是Oracle数据库的一项高级特性,用于构建高可用性和高性能的数据库集群。Oracle RAC允许多个服务器节点共享同一份物理数据库,从而提供连续的服务和负载均衡。...
3. **函数与过程**:在Oracle中,函数和过程是PL/SQL编程的一部分,它们可以用来封装复杂的业务逻辑。函数返回一个值,而过程不返回值,但可以修改数据库状态。熟悉如何创建、调用和管理这些函数和过程是提高数据库...
### Oracle 数据库导入导出详解 #### 一、Oracle 导出(Export)操作 **1.... 在Oracle中,我们可以通过`exp`命令来进行数据库的导出工作。若要将一个名为`TEST`的数据库进行完全导出,可以使用以下命令: ...
### Oracle EBS 财务模块操作手册关键知识点解析 #### 一、系统应用介绍 **1.1 系统配置和安装** - **配置 Hosts 文件:** - 在 Windows 目录下查找 `Hosts` 文件,通常位于 `C:\WINNT\system32\drivers\etc\...
"Orace数据导出文件版本兼容修改工具"就是为了解决这一特定问题而设计的。 该工具的主要功能是调整DMP文件的内部结构,使其符合目标数据库版本的要求。在Oracle数据库系统中,DMP文件是由`expdp`(数据泵导出)命令...
3. Function-based索引:基于列的函数结果创建索引,用于优化包含函数的查询。 4. Clustered索引:数据行的物理顺序与索引顺序相同,提升范围查询性能。 六、Oracle安全性 Oracle提供了丰富的安全特性,如: 1. ...
- **索引优化**:何时使用B树索引、位图索引、函数索引,以及分区索引的优势。 - **绑定变量**:理解其对执行计划的影响,以及如何避免绑定变量漂移。 - **SQL重写**:通过SQL Profiles和SQL Plan Baselines来...
5. 查询与分析:介绍SQL查询优化技巧,以及使用Oracle的分析函数和OLAP功能进行深度分析。 6. 性能监控与调优:讲解如何监控数据仓库的性能,识别瓶颈,并实施相应的优化策略。 7. 安全管理:讨论如何设置权限,...
在Oracle数据库管理中,数据导入导出是至关重要的操作,特别是在数据迁移、备份与恢复、系统复制等场景中。Oracle提供了多种工具来实现这一目的,其中最常用的是`expdp`(Export Data Pump)和`impdp`(Import Data ...