> 文章列表 > sql窗口函数

sql窗口函数

sql窗口函数

什么是SQL窗口函数

SQL窗口函数是一种SQL语句中的函数,可以对一组行执行计算操作,而无需将这些行分组聚合。

SQL窗口函数的语法

SQL窗口函数的语法由三部分组成:
1. 窗口函数本身
2. OVER子句
3. 窗口定义
如下所示:
SELECT window_function_name(argument) OVER ( [PARTITION BY partition_expression, ... ] [ORDER BY sort_expression [ASC|DESC], ... ] [frame_clause] )FROM table_name;

窗口函数的种类

SQL窗口函数可以分为以下四个不同的类别:
1. 常规聚合函数
2. 排序函数
3. 移动函数
4. 统计函数
常见的常规聚合函数包括SUM、AVG、COUNT、MAX和MIN;排序函数包括RANK、DENSE_RANK和NTILE;移动函数包括LEAD和LAG;统计函数包括CORR和COVAR。

OVER子句

OVER子句定义了窗口函数所作用的窗口,语法如下:
OVER ( [PARTITION BY partition_expression, ... ] [ORDER BY sort_expression [ASC|DESC], ... ] [frame_clause])
PARTITION BY子句将窗口分为多个分区,ORDER BY子句定义了分区内的行顺序排序方式,frame_clause定义了基于当前行的偏移量的窗口边界。

使用SQL窗口函数的例子

以下是SQL窗口函数的例子:
SELECT customer_id, transaction_date, amount, SUM(amount) OVER (PARTITION BY customer_id ORDER BY transaction_date) AS running_totalFROM transactionsORDER BY customer_id, transaction_date;
此查询将按顾客ID和交易日期对交易进行分组,并对每个顾客的交易按日期排序。 然后,它将对每个顾客的交易求和,并计算每个交易的累积总和。

安陆市图书馆