ORACLE函数大全
ORACLE函数大全 ORACLE函数大全
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32
2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C -- -
赵 A
3.CONCAT 连接两个字符串;
SQL> select concat('010-','88888888')||'转23' 高乾竞电话 from dual;
高乾竞电话 ----------------
010-88888888转23
4.INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith
5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SQL> select instr('oracle traning','ra',1,2) instring from dual;
INSTRING --------- 9
6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) ------ ------------ ---------------- ------------ --------- --------------------
高乾竞 3 北京市海锭区 6 9999.99 7
7.LOWER 返回字符串,并将所有的字符小写 SQL> select lower('AaBbCcDd')AaBbCcDd from dual; AABBCCDD -------- aabbccdd
8.UPPER 返回字符串,并将所有的字符大写 SQL> select upper('AaBbCcDd') upper from dual;
UPPER -------- AABBCCDD
9.RPAD和LPAD(粘贴字符) RPAD 在列的右边粘贴字符 LPAD 在列的左边粘贴字符 SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual;
LPAD(RPAD('GAO',1 ----------------- *******gao*******
不够字符则用*来填满
10.LTRIM和RTRIM LTRIM 删除左边出现的字符串 RTRIM 删除右边出现的字符串 SQL> select ltrim(rtrim(' gao qian jing ',' '),' ') from dual;
LTRIM(RTRIM(' ------------- gao qian jing 11.SUBSTR(string,start,count) 取子字符串,从start开始,取count个 SQL> select substr('13088888888',3,8) from dual;
SUBSTR(' -------- 08888888
12.REPLACE('string','s1','s2') string 希望被替换的字符或变量
s1 被替换的字符串 s2 要替换的字符串 SQL> select replace('he love you','he','i') from dual;
REPLACE('H ---------- i love you
13.SOUNDEX 返回一个与给定的字符串读音相同的字符串 SQL> create table table1(xm varchar(8)); SQL> insert into table1 values('weather'); SQL> insert into table1 values('wether'); SQL> insert into table1 values('gao');
SQL> select xm from table1 where soundex(xm)=soundex('weather');
XM -------- weather wether
14.TRIM('s' from 'string') LEADING 剪掉前面的字符 TRAILING 剪掉后面的字符 如果不指定,默认为空格符
15.ABS 返回指定值的绝对值 SQL> select abs(100),abs(-100) from dual;
ABS(100) ABS(-100) --------- --------- 100 100
16.ACOS 给出反余弦的值 SQL> select acos(-1) from dual;
ACOS(-1) --------- 3.1415927
17.ASIN 给出反正弦的值 SQL> select asin(0.5) from dual;
ASIN(0.5) --------- .52359878
18.ATAN 返回一个数字的反正切值 SQL> select atan(1) from dual;
ATAN(1) --------- .78539816
19.CEIL 返回大于或等于给出数字的最小整数 SQL> select ceil(3.1415927) from dual;
CEIL(3.1415927) --------------- 4
20.COS 返回一个给定数字的余弦 SQL> select cos(-3.1415927) from dual;
COS(-3.1415927) --------------- -1
21.COSH 返回一个数字反余弦值 SQL> select cosh(20) from dual;
COSH(20) --------- 242582598
22.EXP 返回一个数字e的n次方根 SQL> select exp(2),exp(1) from dual;
EXP(2) EXP(1) --------- --------- 7.3890561 2.7182818
23.FLOOR 对给定的数字取整数 SQL> select floor(2345.67) from dual;
FLOOR(2345.67) -------------- 2345 24.LN 返回一个数字的对数值 SQL> select ln(1),ln(2),ln(2.7182818) from dual;
LN(1) LN(2) LN(2.7182818) --------- --------- ------------- 0 .69314718 .99999999
25.LOG(n1,n2) 返回一个以n1为底n2的对数 SQL> select log(2,1),log(2,4) from dual;
LOG(2,1) LOG(2,4) --------- --------- 0 2
26.MOD(n1,n2) 返回一个n1除以n2的余数 SQL> select mod(10,3),mod(3,3),mod(2,3) from dual;
MOD(10,3) MOD(3,3) MOD(2,3) --------- --------- --------- 1 0 2
27.POWER 返回n1的n2次方根 SQL> select power(2,10),power(3,3) from dual;
POWER(2,10) POWER(3,3) ----------- ---------- 1024 27
28.ROUND和TRUNC 按照指定的精度进行舍入 SQL> select
oracle常用函数使用大全Oracle除法(转)
oracle常⽤函数使⽤⼤全Oracle除法(转)/chenmeng2192089/article/details/9155625⼀、运算符算术运算符:+ - * / 可以在select 语句中使⽤连接运算符:|| select deptno|| dname from dept;⽐较运算符:> >= = != < <= like between is null in逻辑运算符:not and or集合运算符: intersect ,union, union all, minus要求:对应集合的列数和数据类型相同查询中不能包含long 列列的标签是第⼀个集合的标签使⽤order by时,必须使⽤位置序号,不能使⽤列名例:集合运算符的使⽤:intersect ,union, union all, minusselect * from emp intersect select * from emp where deptno=10 ;select * from emp minus select * from emp where deptno=10;select * from emp where deptno=10 union select * from emp where deptno in (10,20); --不包括重复⾏select * from emp where deptno=10 union all select * from emp where deptno in (10,20); --包括重复⾏⼆.ORACLE⽇期时间函数⼤全TO_DATE格式(以时间:2007-11-02 13:45:25为例)Year:yy two digits 两位年显⽰值:07yyy three digits 三位年显⽰值:007yyyy four digits 四位年显⽰值:2007Month:mm number 两位⽉显⽰值:11mon abbreviated 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novmonth spelled out 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novemberDay:dd number 当⽉第⼏天显⽰值:02ddd number 当年第⼏天显⽰值:02dy abbreviated 当周第⼏天简写显⽰值:星期五,若是英⽂版,显⽰friday spelled out 当周第⼏天全写显⽰值:星期五,若是英⽂版,显⽰fridayddspth spelled out, ordinal twelfthHour:hh two digits 12⼩时进制显⽰值:01hh24 two digits 24⼩时进制显⽰值:13Minute:mi two digits 60进制显⽰值:45Second:ss two digits 60进制显⽰值:25其它Q digit 季度显⽰值:4WW digit 当年第⼏周显⽰值:44W digit 当⽉第⼏周显⽰值:124⼩时格式下时间范围为: 0:00:00 - 23:59:59....12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....1. ⽇期和字符转换函数⽤法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //⽇期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的⽉select to_char(sysdate,'dd') as nowDay from dual; //获取时间的⽇select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//2. select to_char( to_date(222,'J'),'Jsp') from dual显⽰Two Hundred Twenty-Two3.求某天是星期⼏select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;星期⼀select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;monday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')4. 两个⽇期间的天数select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;5. 时间为null的⽤法select id, active_date from table1UNIONselect 1, TO_DATE(null) from dual;注意要⽤TO_DATE(null)6.⽉份差a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')那么12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。
ORACLE时间常用函数(字段取年、月、日、季度)
ORACLE时间常⽤函数(字段取年、⽉、⽇、季度)TO_DATE格式Day:dd number 12dy abbreviated friday spelled out fridayddspth spelled out, ordinal twelfthMonth:mm number 03mon abbreviated marmonth spelled out marchYear:yy two digits 98yyyy four digits 199824⼩时格式下时间范围为: 0:00:00 - 23:59:59.... 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....Y或YY或YYY 年的最后⼀位,两位或三位Select to_char(sysdate,’YYY’) from dual;002表⽰2002年SYEAR或YEAR SYEAR使公元前的年份前加⼀负号Select to_char(sysdate,’SYEAR’) from dual; -1112表⽰公元前111 2年Q 季度,1~3⽉为第⼀季度 Select to_char(sysdate,’Q’) from dual; 2表⽰第⼆季度①MM ⽉份数 Select to_char(sysdate,’MM’) from dual; 12表⽰12⽉RM ⽉份的罗马表⽰ Select to_char(sysdate,’RM’) from dual; IV表⽰4⽉Month ⽤9个字符长度表⽰的⽉份名 Select to_char(sysdate,’Month’) from dual; May后跟6个空格表⽰5⽉WW 当年第⼏周 Select to_char(sysdate,’WW’) from dual; 24表⽰2002年6⽉13⽇为第24周W 本⽉第⼏周 Select to_char(sysdate,’W’) from dual; 2002年10⽉1⽇为第1周DDD 当年第⼏, 1⽉1⽇为001,2⽉1⽇为032 Select to_char(sysdate,’DDD’) from dual; 363 2002年1 2⽉2 9⽇为第363天DD 当⽉第⼏天 Select to_char(sysdate,’DD’) from dual; 04 10⽉4⽇为第4天D 周内第⼏天 Select to_char(sysdate,’D’) from dual; 5 2002年3⽉14⽇为星期⼀DY 周内第⼏天缩写 Select to_char(sysdate,’DY’) from dual; SUN 2002年3⽉24⽇为星期天HH或HH12 12进制⼩时数 Select to_char(sysdate,’HH’) from dual;02 午夜2点过8分为02 HH24 24⼩时制 Select to_char(sysdate,’HH24’) from dual; 14 下午2点08分为14MI 分钟数(0~59) Select to_char(sysdate,’MI’) from dual; 17下午4点17分SS 秒数(0~59) Select to_char(sysdate,’SS’) from dual; 22 11点3分22秒提⽰注意不要将MM格式⽤于分钟(分钟应该使⽤MI)。
oracle中datediff函数的用法 -回复
oracle中datediff函数的用法-回复Oracle中没有内置的DATEDIFF函数,但可以使用其他函数来实现类似的功能。
下面是一种常用的方法来计算两个日期之间的差异。
在Oracle中,我们可以使用日期函数来处理日期和时间。
其中一些常用的日期函数包括:TO_DATE,TO_CHAR,SYSDATE,ROUND等。
1. TO_DATE函数:将一个字符串转换为日期格式。
例如:TO_DATE('2022-01-01', 'YYYY-MM-DD') 返回日期值'2022-01-01'。
2. SYSDATE函数:返回当前日期和时间。
例如:SYSDATE 返回当前的系统日期和时间。
3. ROUND函数:对数值进行四舍五入。
例如:ROUND(3.14159, 2) 返回3.14。
现在,我们将使用这些函数来计算两个日期之间的差异。
步骤1:确定两个日期首先,确定要计算差异的两个日期。
假设我们要计算2022年1月1日和2025年12月31日之间的天数差异。
步骤2:将日期转换为标准格式使用TO_DATE函数将日期转换为标准格式。
例如:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') AS start_date, TO_DATE('2025-12-31', 'YYYY-MM-DD') AS end_date FROM DUAL;这将返回以下结果:START_DATE END_DATE2022-01-01 2025-12-31步骤3:计算日期差异使用日期函数进行日期差异计算。
Oracle中,我们可以使用减法运算符(-)来计算两个日期之间的差异。
例如:SELECT TO_DATE('2025-12-31', 'YYYY-MM-DD') -TO_DATE('2022-01-01', 'YYYY-MM-DD') AS date_diffFROM DUAL;这将返回以下结果:DATE_DIFF1094这表示2022年1月1日和2025年12月31日之间有1094天的差异。
oracle 百分比函数
Oracle 百分比函数是在 Oracle 数据库系统中大量使用的一种函数。
它可以用来计算某个值在整个结果集中的百分比。
例如,计算某个城市的人口在全国总人口中的百分比。
Oracle 提供了一种叫做PERCENT_RANK的函数,可以用来计算百分比。
它的语法如下:PERCENT_RANK(expression1, expression2, expression3)。
其中,expression1表示要计算百分比的值,expression2表示结果集中的所有值,expression3表示结果集中的记录数。
另外,Oracle 还提供了一种叫做RANK的函数,它的功能也是计算百分比,但与PERCENT_RANK函数不同的是,它会根据结果集中的值的大小来计算每个值的百分比。
它的语法如下:RANK(expression1, expression2)。
其中,expression1表示要计算百分比的值,expression2表示结果集中的所有值。
此外,Oracle 还提供了一种叫做DENSE_RANK的函数,它可以用来计算百分比,但与RANK函数不同的是,它会根据结果集中的值的大小来计算每个值的百分比,并且它会忽略结果集中值相等的情况。
它的语法如下:DENSE_RANK(expression1, expression2)。
其中,expression1表示要计算百分比的值,expression2表示结果集中的所有值。
Oracle 百分比函数可以大大提高计算效率,可以帮助我们更加快速准确地统计出数据的百分比值,从而更方便地分析数据。
此外,这些函数还可以用来实现类似分组统计的功能,比如统计某个值在某个分组中的百分比。
oracle常用聚集函数
oracle常用聚集函数Oracle是数据库管理系统中的一种,支持众多的聚集函数,这些聚集函数能够按照特定规则将行组合为单个结果值。
以下是Oracle中比较常用的聚集函数。
1. AVG函数:用于计算数值列的平均值。
语法:AVG(column_name)2. COUNT函数:用于计算指定列中的行数。
可以使用COUNT(*)来计算表中的所有行数。
语法:COUNT(column_name)3. MAX函数:用于查找数值列中的最大值。
语法:MAX(column_name)4. MIN函数:用于查找数值列中的最小值。
语法:MIN(column_name)5. SUM函数:用于计算数值列的总和。
语法:SUM(column_name)其中,AVG、SUM、MAX和MIN等函数可以用于数字列,而COUNT也可以用于任何列(字符串、数字等)。
除了以上常用的聚集函数外,Oracle还支持其他聚集函数,如STDDEV、VARIANCE等。
STDDEV函数返回给定数列的标准差,VARIANCE函数返回给定数列的方差。
需要注意的是,在使用聚集函数时,必须指定分组条件。
使用GROUP BY关键字指定分组条件,以便使聚集函数仅作用于指定的数据子集上。
例如:SELECT department, AVG(salary)FROM employeesGROUP BY department;以上代码将返回每个部门的平均工资,因为使用了GROUP BY部门。
总之,Oracle中的聚集函数可以大大简化复杂查询的编写,帮助开发者更高效地进行数据分析和处理。
以上介绍的聚集函数是Oracle常用聚集函数中的一部分,也是开发者在使用Oracle进行数据查询时需要了解的重要知识点。
ORACLE常用函数功能演示
ORACLE常用函数功能演示文档撰写:孟祥新写在前面:ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。
由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码是内嵌在ORACLE数据库系统中的,因此其执行效率极高。
在数据库编程中能广泛使用ORACLE所提供的内置函数,将大大提高程序代码的执行效率。
“站在高人的肩膀上,将使你变得更高”。
演示之前的环境设置:为了在SQL*PLUS中直观地显示函数返回的结果,我将“头”信息先屏蔽掉。
操作如下:一、单行函数1.数值函数(1)三角函数①SIN、ASIN、SINH(正弦、反正弦、双曲正弦)②COS、ACOS、COSH(余弦、反余弦、双曲余弦)③TAN、ATAN、TANH(正切、反正切,双曲正切)(2)幂、方根及对数运算函数①POWER(m, n)(取m的n次幂)②SQRT(n)(取n的平方根)③EXP(n)(取自然对数底e的n次方根)④LN(n)(取n的自然对数)⑤LOG(m, n)(取以m为底n的对数)以上函数功能演示如下:(3)数值处理函数①ABS(n)(取绝对值)②SIGN(n)(符号函数)③CEIL(n)(取不小于n的最小整数)④FLOOR(n)(取不大于n的最大整数)⑤ROUND(n, [m])(按m精度对n进行4舍5入)⑥TRUNC(n, [m])(按m精度对n进行截取)⑦MOD(m, n)(取m除以n的余数)以上函数功能演示如下:2.字符处理函数(1)对字符串的大小写处理的函数①INITCAP(功能:将字符串中每个单词的首字母,变换为大写。
)②UPPER(功能:将字符串中的所有字母,转换为大写。
)③LOWER(功能:将字符串中的所有字母,转换为小写。
)以上函数功能演示如下:(2)对字符串进行处理的函数①CONCAT(字符串连接函数,也可用|| 替代)功能演示如下:②ASCII(取字符的编码)③CHR(将编码转换为对应的字符)以上函数功能演示如下:④LTRIM(去除左侧空格/指定字符)⑤RTRIM(去除右侧空格/指定字符)⑥TRIM(去除两侧的空格/去除指定字符)以上函数去除空格功能演示如下:以上函数去除指定字符功能演示如下:请注意:在用TRIM去除字符串中指定字符(非空格)时的特殊用法。
Oracle内置函数大全
Oracl e SQL 内置函数大全(一)整理时间[2005-10-14] 阅读次数[6224]导读:Oracle SQL 内置函数大全(一)Oracle SQL 内置函数大全(二)Oracle SQL 内置函数大全(三)________________________________________文字大小:【大】【中】【小】SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;A a ZERO SPACE--------- --------- --------- ---------65 97 48 322. 2.CHR给出整数,返回对应的字符;SQL> select chr(54740) zhao,chr(65) chr65 from dual;ZH C-- -赵A3. 3.CONCAT连接两个字符串;SQL> select concat('010-','88888888')||'转23' 高乾竞电话from dual; 高乾竞电话----------------010-********转234. 4.INITCAP返回字符串并将字符串的第一个字母变为大写;SQL> select initcap('smith') upp from dual;UPP-----Smith5. 5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1(第一次?)SQL> select instr('oracle traning','ra',1,2) instring from dual;INSTRING---------96. 6.LENGTH返回字符串的长度;SQL> selectname,length(name),addr,length(addr),sal,length(to_char(sal))from .nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SALLENGTH(TO_CHAR(SAL))------ ------------ ---------------- ------------ --------- --------------------高乾竞 3 北京市海锭区 6 9999.99 7。
oracle进一法的函数
在Oracle数据库中,如果你想实现进一法(也称为向上取整)的功能,你可以使用`CEIL`函数。
这个函数会将给定的数值向上取整到最接近的整数。
例如:
```sql
SELECT CEIL(5.7) FROM dual; --结果是6
```
在这个例子中,5.7被向上取整到了6。
如果你需要实现向零方向取整(也称为向下取整),你可以使用`FLOOR`函数。
例如:
```sql
SELECT FLOOR(5.7) FROM dual; --结果是5
```
在这个例子中,5.7被向下取整到了5。
除了`CEIL`和`FLOOR`函数之外,Oracle数据库还提供了许多其他的数学函数,可以满足你在各种场景下的需求。
如果你需要进行更复杂的数学运算,比如开方、三角函数等,Oracle也提供了相应的函数供你使用。
此外,如果你需要进行更复杂的数值计算,比如求解方程、进行统计分析等,你可能需要使用到Oracle的数学库函数。
这些函数提供了更高级的数学运算功能,可以帮助你完成更复杂的任务。
总的来说,Oracle数据库的数学函数和数学库函数为你提供了强大的数值计算能力,可以帮助你更好地处理和分析数据。
oracle常用函数trunc用法
oracle常用函数trunc用法Oracle中的TRUNC函数是用来对数字进行截取的常用函数。
它将一个数字截取到指定的精度上,并返回截取后的数字。
TRUNC函数的语法如下:TRUNC(number, [precision])其中,number表示要截取的数字,precision表示要截取的精度。
如果不指定precision,则默认为0,即截取到整数部分。
以下是TRUNC函数常用的几种用法:1.截取到整数部分可以直接使用TRUNC函数来截取一个数字的整数部分。
例如:2.截取到指定小数位数可以将precision参数设置为一个负数,表示截取小数点左边的位数。
例如:3.截取到指定日期精度TRUNC函数同样可以用于日期类型的截取。
可以将precision参数设置为'day'、'month'或'year',表示截取到指定的日期精度。
例如:SELECT TRUNC(SYSDATE, 'month') FROM dual; -- 返回当月的第一天4.截取到指定时间精度TRUNC函数也可以用于时间类型的截取。
可以将precision参数设置为'hour'、'minute'或'second',表示截取到指定的时间精度。
例如:SELECT TRUNC(SYSDATE, 'hour') FROM dual; -- 返回当前小时的整点时间5.用于表达式中的截取TRUNC函数不仅可以直接用于数字或日期,还可以用于表达式中。
例如:SELECT TRUNC(10.5 + 2.6) FROM dual; -- 返回12总结:TRUNC函数是Oracle中常用的截取函数,可以用于数字、日期和时间类型。
它能够截取到指定的精度上,并返回截取后的结果。
可以通过设置precision参数来实现不同的截取需求。
oracle分位数函数
oracle分位数函数Oracle分位数函数是一种用于计算数据的分位数的数学函数。
分位数函数是该数据集中的值,其将数据集分为了若干等份。
在统计学中,分位数用于将给定的数据集划分为有序部分。
分位数还用于反映一个给定数据集的中心点和其变异程度。
Oracle分位数函数是巨大的数据库系统Oracle的一个组成部分。
这些函数可以在Oracle数据库中使用,帮助用户计算和处理大量数据。
Oracle中有四个不同的分位数函数。
这些函数都基于SQL语法,可以在SQL(结构化查询语言)查询中使用。
其中,四个分位数函数是:PERCENTILE_CONT:计算连续分布上的第p百分位数(连续分位数函数)。
PERCENTILE_DISC:计算离散分布上的第p百分位数(脱落分位数函数)。
MEDIAN:计算一个数据集的中位数。
QUARTILE:在数据集上计算四分位数(第1个、第2个和第3个四分位数)。
这四个函数中最常用的是PERCENTILE_CONT和PERCENTILE_DISC两个函数。
它们是Oracle数据库中计算分位数的主要函数。
PERCENTILE_CONT函数可以帮助你计算分布上的百分位数。
它返回连续分布上的分位数。
该函数的语法如下:PERCENTILE_CONT(p) WITHIN GROUP (ORDER BY expr) [OVER (PARTITION BY partitioning)]其中,p是要计算的分位数百分比,expr是基于其计算分位数的表达式,partitioning是可选的分区语句。
该函数会将值从expr列按升序排序,然后使用线性内插法来计算指定百分比的分位数值。
如果分布上没有精确的分位数,该函数将返回一个近似值。
下面是一些示例:SELECT PERCENTILE_CONT(.25) WITHIN GROUP (ORDER BY salary) OVER () "1st Quartile", PERCENTILE_CONT(.5) WITHIN GROUP (ORDER BY salary) OVER () "Median", PERCENTILE_CONT(.75) WITHIN GROUP (ORDER BY salary) OVER () "3rd Quartile"FROM employees;MEDIAN(expr)其中,expr是要计算中位数的表达式。
