国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

oracle 函數(聚合函數等等)精華

2019-11-08 20:48:16
字體:
來源:轉載
供稿:網友

基本轉自 tianlesoftware  ,使用過新的便更新。

--聚合函數根據group的情況,返回每個groups里的一個result。 聚合函數可以使用orderby 和 having 的子句中使用。

分析函數的over()部分的分析字句有3部分構成,分區語句,排序語句和窗口語句。        (1)分區語句(partition by):將查詢結果分為不同的組,功能類似于group by語句,是分析函數工作的基礎。默認是將所有結果作為一個分組。        (2)排序語句(order  by):將每個分區進行排序。        (3)窗口語句:定義當前窗口,具體說是對每一個分組,按照給定的排序規則排序后,從分組的頂部到底部依次迭代,每次針對當前的行可以定義一個包含若干行的窗口。如果省略了窗口語句,默認使用從分組第一行到當前行的分組。

1.  Over()開窗函數

2.  Nvl()函數3.  Rollup,Cube自動匯總函數4.  Rank,Dense_rank,Row_number函數5.  Lag , Lead函數6.  Sum,Avg, Count, Max函數7.  Ratio_to_report報表處理函數8.  First,Last,First_value,Last_value取基數的分析函數

9.  Greatest,Least 函數

10. Trunc, Round,Decode, Substr函數

/* Formattedon 2009/11/08 20:36 (Formatter Plus v4.8.8) */  SELECT  GROUPING_ID (student_name, subjects), student_name, subjects,           SUM (score)      FROM studentscore  GROUP BY ROLLUP (student_name, subjects)  ORDER BY 1;        /* Formattedon 2009/11/08 20:36 (Formatter Plus v4.8.8) */  SELECT  GROUPING (student_name), GROUPING (subjects),           CASE              WHEN GROUPING (student_name) = 0                   AND GROUPING (subjects) = 1                 THEN ' 學生成績合計 '              WHEN GROUPING (student_name) = 1                   AND GROUPING (subjects) = 0                 THEN ' 課目成績合計 '              WHEN GROUPING (student_name) = 1                   AND GROUPING (subjects) = 1                 THEN ' 總                 計 '              ELSE ''           END summary,           student_name, subjects, SUM (score)      FROM studentscore  GROUP BY CUBE (student_name, subjects)  ORDER BY 1, 2;  

 (1) ROW_NUMBER:

Row_number函數返回一個唯一的值,當碰到相同數據時,排名按照記錄集中記錄的順序依次遞增。

 (2)DENSE_RANK:

Dense_rank函數返回一個唯一的值,除非當碰到相同數據時,此時所有相同數據的排名都是一樣的。

 (3) RANK:

Rank函數返回一個唯一的值,除非遇到相同的數據時,此時所有相同數據的排名是一樣的,同時會在最后一條相同記錄和下一條不同記錄的排名之間空出排名。

2.5 lag,lead函數

lag(exPRession,<offset>,<default>)  函數可以訪問組內當前行之前的行,

lead(expression,<offset>,<default>) 函數則正相反,可以反問組內當前行之后的行.其中,offset是正整數,默認為1.因組內第一個條記錄沒有之前的行,最后一行沒有之后的行,它表示要取列第N行之前或者之后的值,default就是用于處理這樣的信息,默認為空.它用于當之前或者之后第N行不存在時的值。

分析函數RATIO_TO_REPORT 用來計算當前記錄的指標expr占開窗函數over中包含記錄的所有同一指標的百分比. 這里如果開窗函數的統計結果為null或者為0,就是說占用比率的被除數為0或者為null, 則得到的結果也為0.

行轉列函數   pivot 

c4 as (select * from b4 pivot (sum(money) tm for (ap) in (('a') a,('b') b,('c') c,('d') d,('e') e)))  

select * from t pivot (sum(a) aa,sum(b) bb for ( c,d) in (('啊',3) ss,('a',5) sss))


上一篇:derby的優點和缺點

下一篇:MySQL安裝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑河市| 秦安县| 麦盖提县| 姚安县| 外汇| 洛浦县| 凤山市| 扎鲁特旗| 尼木县| 榆社县| 鄄城县| 通江县| 安岳县| 安塞县| 祁连县| 威宁| 普洱| 高尔夫| 崇左市| 彭州市| 汉寿县| 永济市| 神木县| 兴隆县| 宜城市| 宽甸| 基隆市| 建德市| 波密县| 兰坪| 浪卡子县| 民权县| 海城市| 西平县| 绍兴市| 乌鲁木齐市| 弥渡县| 麦盖提县| 吉首市| 武功县| 西盟|