日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle 分析函数视频教程,Oracle 分析函数使用教程(3)

發(fā)布時(shí)間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 分析函数视频教程,Oracle 分析函数使用教程(3) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開(kāi)窗條件query_partition_clause決定被除數(shù)的值, 如果用戶忽略了這個(gè)條件, 則計(jì)算查詢結(jié)果中所有記錄的匯總值.

用戶不能使用其他分析函數(shù)或者ratio_to_report作為分析函數(shù)ratio_to_report的參數(shù)expr, 也就是說(shuō)這個(gè)函數(shù)不能循環(huán)使用. 但我們可以使用其他普通函數(shù)作為這個(gè)分析函數(shù)的查詢結(jié)果.

RATIO_TO_REPORT解析函數(shù)使得這種類型的查詢更容易編碼。它的格式如下:

RATIO_TO_REPORT (expr) OVER (query_partition_clause)

/* FORMATTED ON 2009/11/10 20:24 (FORMATTER PLUS V4.8.8) */

SELECT ENAME, SAL, DEPTNO, RATIO_TO_REPORT (SAL) OVER () AS RR

FROM SCOTT.EMP

WHERE DEPTNO = 10;

ENAME

SAL

DEPTNO

RR

CLARK

2,450

10

0.28

KING

5,000

10

0.571428571428571

MILLER

1,300

10

0.148571428571429

/* FORMATTED ON 2009/11/10 20:36 (FORMATTER PLUS V4.8.8) */

SELECT ENAME, SAL, DEPTNO,

RATIO_TO_REPORT (SAL) OVER (PARTITION BY DEPTNO) AREA_PCT

FROM SCOTT.EMP;

ENAME

SAL

DEPTNO

AREA_PCT

CLARK

2,450.0000000000

10

0.2800000000

KING

5,000.0000000000

10

0.5714285714

MILLER

1,300.0000000000

10

0.1485714286

JONES

2,975.0000000000

20

0.2735632184

FORD

3,000.0000000000

20

0.2758620690

ADAMS

1,100.0000000000

20

0.1011494253

SMITH

800.0000000000

20

0.0735632184

SCOTT

3,000.0000000000

20

0.2758620690

WARD

1,250.0000000000

30

0.1329787234

TURNER

1,500.0000000000

30

0.1595744681

ALLEN

1,600.0000000000

30

0.1702127660

JAMES

950.0000000000

30

0.1010638298

BLAKE

2,850.0000000000

30

0.3031914894

MARTIN

1,250.0000000000

30

0.1329787234

八. First,Last,First_value,Last_value取基數(shù)的分析函數(shù)

First功能描述:從DENSE_RANK返回的集合中取出排在最前面的一個(gè)值的行(可能多行,因?yàn)橹悼赡芟嗟?,因此完整的語(yǔ)法需要在開(kāi)始處加上一個(gè)集合函數(shù)以從中取出記錄。

Last功能描述:從DENSE_RANK返回的集合中取出排在最后面的一個(gè)值的行(可能多行,因?yàn)橹悼赡芟嗟?,因此完整的語(yǔ)法需要在開(kāi)始處加上一個(gè)集合函數(shù)以從中取出記錄。

FIRST_VALUE、LAST_VALUE:返回結(jié)果集中排在第一位和最后一位的值。

語(yǔ)法是:FIRST_VALUE (expr) OVER ( analytic_clause)

/* FORMATTED ON 2009/11/10 20:51 (FORMATTER PLUS V4.8.8) */

SELECT ENAME, DEPTNO, SAL,

MIN (SAL)KEEP (DENSE_RANK FIRST ORDER BY DEPTNO) OVER (PARTITION BY DEPTNO) "Worst",

MAX (SAL)KEEP (DENSE_RANK LAST ORDER BY DEPTNO) OVER (PARTITION BY DEPTNO) "Best"

FROM SCOTT.EMP;

ENAME

DEPTNO

SAL

Worst

Best

CLARK

10

2,450

1,300

5,000

KING

10

5,000

1,300

5,000

MILLER

10

1,300

1,300

5,000

JONES

20

2,975

800

3,000

FORD

20

3,000

800

3,000

ADAMS

20

1,100

800

3,000

SMITH

20

800

800

3,000

SCOTT

20

3,000

800

3,000

WARD

30

1,250

950

2,850

TURNER

30

1,500

950

2,850

ALLEN

30

1,600

950

2,850

JAMES

30

950

950

2,850

BLAKE

30

2,850

950

2,850

MARTIN

30

1,250

950

2,850

/* Formatted on 2009/11/10 20:55 (Formatter Plus v4.8.8) */

SELECT ENAME, DEPTNO, SAL,

FIRST_VALUE (ENAME) OVER (PARTITION BY DEPTNO ORDER BY SAL ASC) AS LOWEST_SAL

FROM SCOTT.EMP;

ENAME

DEPTNO

SAL

LOWEST_SAL

MILLER

10

1,300

MILLER

CLARK

10

2,450

MILLER

KING

10

5,000

MILLER

SMITH

20

800

SMITH

ADAMS

20

1,100

SMITH

JONES

20

2,975

SMITH

FORD

20

3,000

SMITH

SCOTT

20

3,000

SMITH

JAMES

30

950

JAMES

MARTIN

30

1,250

JAMES

WARD

30

1,250

JAMES

TURNER

30

1,500

JAMES

ALLEN

30

1,600

JAMES

BLAKE

30

2,850

JAMES

九. Greatest, Least 函數(shù)

Greatest函數(shù):取一個(gè)一維數(shù)組中的最大值。

Least函數(shù):取一個(gè)一維數(shù)組中的最小值。

/* Formatted on 2009/11/10 20:59 (Formatter Plus v4.8.8) */

SELECT GREATEST (1, 2, 3, 4, 5, 6) MAX

FROM DUAL;

/* Formatted on 2009/11/10 20:59 (Formatter Plus v4.8.8) */

SELECT LEAST (1, 2, 3, 4, 5, 6) MIN

FROM DUAL;

十. Trunc, round, decode,substr函數(shù)

全角的數(shù)字/字母/標(biāo)點(diǎn)符號(hào)轉(zhuǎn)半角to_single_byte

10.1 Trunc 函數(shù)

Trunc實(shí)際上是truncate函數(shù),字面意思是截?cái)?#xff0c;截尾。函數(shù)的功能是將數(shù)字進(jìn)行截?cái)?。tranc()并不四舍五入。

/* Formatted on 2009/11/10 21:19 (Formatter Plus v4.8.8) */

SELECT TRUNC (1234.5678, 2) rs

FROM DUAL;

RS

----------

1234.56

/* Formatted on 2009/11/10 21:19 (Formatter Plus v4.8.8) */

SELECT TRUNC (1234.5678, 0) rs

FROM DUAL;

RS

----------

1234

/* Formatted on 2009/11/10 21:19 (Formatter Plus v4.8.8) */

SELECT TRUNC (1234.5678, -2) rs

FROM DUAL;

RS

------------

1200

10.2 Round 函數(shù)

Round 函數(shù): 返回按指定位數(shù)進(jìn)行四舍五入的數(shù)值。

語(yǔ)法: Round(expression[, numdecimalplaces])

expression 必選。 數(shù)值表達(dá)式 被四舍五入。

numdecimalplaces 可選。數(shù)字表明小數(shù)點(diǎn)右邊有多少位進(jìn)行四舍五入。如果省略,則 Round 函數(shù)返回整數(shù)。

/* Formatted on 2009/11/10 21:23 (Formatter Plus v4.8.8) */

SELECT ROUND (12.45, 1) rs

FROM DUAL;

RS

---------------

12.5

10.3 Decode 函數(shù)

decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

decode(字段或字段的運(yùn)算,值1,值2,值3)

SELECT DECODE (value, , ) FROM table

這個(gè)函數(shù)運(yùn)行的結(jié)果是,當(dāng)字段或字段的運(yùn)算的值等于值1時(shí),該函數(shù)返回值2,否則返回值3

當(dāng)然值1,值2,值3也可以是表達(dá)式,這個(gè)函數(shù)使得某些sql語(yǔ)句簡(jiǎn)單了許多

/* Formatted on 2009/11/10 21:28 (Formatter Plus v4.8.8) */

SELECT DECODE (NAME, 'Dave', 'I Love BL', 'NoLove') rs

FROM (SELECT 'Dave' NAME

FROM DUAL);

RS

---------

I Love BL

/* Formatted on 2009/11/10 21:29 (Formatter Plus v4.8.8) */

SELECT DECODE (NAME, 'BL', 'I love Dave', 'NoLove') rs

FROM (SELECT 'Dave' NAME

FROM DUAL);

RS

------

NoLove

10.4 SubStr 函數(shù)

SUBSTR(string,start,count) : 取子字符串,從start開(kāi)始,取count個(gè)。

/* Formatted on 2009/11/10 21:37 (Formatter Plus v4.8.8) */

SELECT SUBSTR ('I Love You', 3, 4) rs

FROM DUAL;

RS

----

Love

總結(jié)

以上是生活随笔為你收集整理的oracle 分析函数视频教程,Oracle 分析函数使用教程(3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。