openGauss 高階分析函式支援

奔跑的数据库發表於2024-03-30

高階分析函式支援

可獲得性

本特性自openGauss 1.1.0版本開始引入。

特性簡介

無。

客戶價值

我們提供視窗函式來進行資料高階分析處理。視窗函式將一個表中的資料進行預先分組,每一行屬於一個特定的組,然後在這個組上進行一系列的關聯分析計算。這樣可以挖掘出每一個元組在這個集合裡的一些屬性和與其他元組的關聯資訊。

特性描述

簡單舉例說明視窗分析功能:分析某一部門內每個人的薪水和部門平均薪水的對比。

SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary; 
depname | empno | salary | avg
-----------+-------+--------+----------------------- 
develop | 11 | 5200 | 5020.0000000000000000 
develop | 7 | 4200 | 5020.0000000000000000 
develop | 9 | 4500 | 5020.0000000000000000 
develop | 8 | 6000 | 5020.0000000000000000 
develop | 10 | 5200 | 5020.0000000000000000 
personnel | 5 | 3500 | 3700.0000000000000000 
personnel | 2 | 3900 | 3700.0000000000000000 
sales | 3 | 4800 | 4866.6666666666666667
sales | 1 | 5000 | 4866.6666666666666667 
sales | 4 | 4800 | 4866.6666666666666667 
(10 rows)

可以看到,透過這個avg(salary) OVER (PARTITION BY depname)分析函式,每一個人的薪水和與部門的平均薪水很容易計算出來。

目前,系統支援row_number()、rank()、dense_rank()、percent_rank()、cume_dist()、ntile()、lag()、lead()、first_value()、last_value()、nth_value()分析函式。具體的函式用法和語句請參見《SQL參考》中“ 內建函式 > 視窗函式”章節。

特性增強

無。

特性約束

無。

依賴關係

無。

相關文章