笔记:Oracle常用分析函数
Oracle常用分析函数
ROW_NUMBER
返回有序组中一行的偏移量,从而可用于按特定标准排序的行号
row_number() over(partition by ... order by ...)
RANK
根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。然而,如果两行的确得到同样的排序,则序数将随后跳跃。若两行序数为1,则没有序数2,序列将给组中的下一行分配值3,DENSE_RANK则没有任何跳跃
rank() over(partition by ... order by ...)
DENSE_RANK
根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。密集的序列返回的时没有间隔的数
dense_rank() over(partition by ... order by ...)
COUNT
对一组内发生的事情进行累积计数,如果指定*或一些非空常数,count将对所有行计数,如果指定一个表达式,count返回表达式非空赋值的计数,当有相同值出现时,这些相等的值都会被纳入被计算的值;可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数
count(...) over(partition by ... order by ...)
MAX
在一个组中的数据窗口中查找表达式的最大值
max(...) over(partition by ... order by ...)
MIN
在一个组中的数据窗口中查找表达式的最小值
min(...) over(partition by ... order by ...)
SUM
该函数计算组中表达式的累积和
sum(...) over(partition by ... order by ...)
AVG
用于计算一个组和数据窗口内表达式的平均值
avg(...) over(partition by ... order by ...)
FIRST_VALUE
返回数据组中第一个值
first_value(...) over(partition by ... order by ...)
LAST_VALUE
返回数据组中最后一个值
last_value(...) over(partition by ... order by ...)
LAG
可以访问结果集中的其它行而不用进行自连接。它允许去处理游标,就好像游标是一个数组一样。在给定组中可参考当前行之前的行,这样就可以从组中与当前行一起选择以前的行。Offset是一个正整数
相关文档:
表的查找:
select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';
引号里边的字符是区分大小写的。
查找之后把结果排序:
select * from emp order by sal asc;
asc是升序,desc是降序
对列重命名,只要打个空格,后跟新列名就可以
select ename,sal*12+nvl(comm,0)*12 "年薪" from ......
一.Oracle数据库中常用的数据类型
varchar2(长度)可变长字符串
char(长度) 定长
number()表示整数或者浮点数number(8) number(8,2)
clog 字符的大对象
blog 二进制的大对象
二.数据库查询
1)SELECT语句
从表中提取查询数据.语法为SELECT [DISTINCT] {column1,column2,…} from tablename WHERE {con ......
Oracle中Kill session的研究
作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】
链接:http://www.eygle.com/archives/2004/06/kill_session.html
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:
alter system kill session 'sid,serial# ......
1)Library Cache的命中率:
.计算公式:Library Cache Hit Ratio = sum(pinhits) / sum(pins)
SQL>SELECT SUM(pinhits)/sum(pins) from V$LIBRARYCACHE;
通常在98%以上,否则,需要要考虑加大共享池,绑定变量,修改cursor_sharing等参数。
2)计算共享池内存使用率:
SQL>SELECT ......
2008-09-02
J2EE操作Oracle的clob类型字段
关键字: java
Oracle中,Varchar2支持的最大字节数为4KB,所以对于某些长字符串的处理,我们需要用CLOB类型的字段,CLOB字段最大支持4GB。
还有其他几种类型:
blob:二进制,如果exe,zip
clob:单字节码,比如一般的文本文件.
nlob:多字节码,如UTF格式的文件.
以下就 ......