W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
OLAP函數(shù)類似于聚合函數(shù),除了聚合函數(shù)只返回一個(gè)值,而OLAP函數(shù)將提供聚合以外的各行。
以下是OLAP函數(shù)的一般語法。
<aggregate function> OVER ([PARTITION BY] [ORDER BY columnname][ROWS BETWEEN UNBOUDED PRECEDING AND UNBOUNDED FOLLWOING)
聚合函數(shù)可以是SUM,COUNT,MAX,MIN,AVG。
考慮以下薪資表。
員工不 | 毛 | 扣除 | NetPay |
---|---|---|---|
101 | 40,000 | 4,000 | 36,000 |
102 | 80,000 | 6,000 | 74,000 |
103 | 90,000 | 7,000 | 83,000 |
104 | 75,000 | 5,000 | 70,000 |
以下是查找工資表上NetPay的累計(jì)金額或運(yùn)行總計(jì)的示例。 記錄按EmployeeNo排序,累積和計(jì)算在NetPay列上。
SELECT EmployeeNo, NetPay, SUM(Netpay) OVER(ORDER BY EmployeeNo ROWS UNBOUNDED PRECEDING) as TotalSalary FROM Salary;
當(dāng)執(zhí)行上述查詢時(shí),它將產(chǎn)生以下輸出。
EmployeeNo NetPay TotalSalary ----------- ----------- ----------- 101 36000 36000 102 74000 110000 103 83000 193000 104 70000 263000 105 18000 281000
RANK功能根據(jù)提供的列對(duì)記錄進(jìn)行排序。 RANK函數(shù)還可以根據(jù)排名過濾返回的記錄數(shù)。
以下是使用RANK函數(shù)的通用語法。
RANK() OVER ([PARTITION BY columnnlist] [ORDER BY columnlist][DESC|ASC])
考慮以下Employee表。
員工不 | 名字 | 姓 | JoinedDate | DepartmentID | 生日 |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Peter | Paul | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | James | 1/4/2008 | 3 | 12/1/1984 |
以下查詢通過加入日期對(duì)雇員表的記錄進(jìn)行排序,并在“加入日期”中分配排名。
SELECT EmployeeNo, JoinedDate,RANK() OVER(ORDER BY JoinedDate) as Seniority FROM Employee;
當(dāng)執(zhí)行上述查詢時(shí),它將產(chǎn)生以下輸出。
EmployeeNo JoinedDate Seniority ----------- ---------- ----------- 101 2005-03-27 1 103 2007-03-21 2 102 2007-04-25 3 105 2008-01-04 4 104 2008-02-01 5
PARTITION BY子句按照在PARTITION BY子句中定義的列對(duì)數(shù)據(jù)進(jìn)行分組,并在每個(gè)組中執(zhí)行OLAP功能。 以下是使用PARTITION BY子句的查詢的示例。
SELECT EmployeeNo, JoinedDate,RANK() OVER(PARTITION BY DeparmentNo ORDER BY JoinedDate) as Seniority FROM Employee;
當(dāng)執(zhí)行上述查詢時(shí),它將產(chǎn)生以下輸出。 您可以看到每個(gè)部門都重置了排名。
EmployeeNo DepartmentNo JoinedDate Seniority ----------- ------------ ---------- ----------- 101 1 2005-03-27 1 103 2 2007-03-21 1 102 2 2007-04-25 2 104 2 2008-02-01 3 105 3 2008-01-04 1
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: