📜  聚合和窗口函数(1)

📅  最后修改于: 2023-12-03 15:41:22.727000             🧑  作者: Mango

聚合和窗口函数

在 SQL 中,聚合函数和窗口函数是非常重要的工具,可以用来对数据进行统计和分析。本文将对这两种函数进行介绍和使用。

聚合函数

聚合函数是用来对数据进行统计的函数,常用的聚合函数包括 SUM、AVG、COUNT、MAX 和 MIN。这些函数都能够对同一列的数据进行计算,并返回计算结果。

SUM 函数

SUM 函数用于计算指定列的数值之和,语法如下:

SELECT SUM(column_name) FROM table_name;
AVG 函数

AVG 函数用于计算指定列的数值平均值,语法如下:

SELECT AVG(column_name) FROM table_name;
COUNT 函数

COUNT 函数用于计算指定列的数据行数,语法如下:

SELECT COUNT(column_name) FROM table_name;
MAX 函数

MAX 函数用于计算指定列的最大值,语法如下:

SELECT MAX(column_name) FROM table_name;
MIN 函数

MIN 函数用于计算指定列的最小值,语法如下:

SELECT MIN(column_name) FROM table_name;
窗口函数

窗口函数是一种可以根据指定的窗口范围对数据进行计算的函数。常用的窗口函数包括 ROW_NUMBER、RANK、DENSE_RANK 和 NTILE。

ROW_NUMBER 函数

ROW_NUMBER 函数用于给数据行逐行编号,语法如下:

SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS num, column_name FROM table_name;
RANK 函数

RANK 函数用于根据指定列计算排名,如果有多条数据排名相同,将会得到相同的排名,下一个排名将会跳过。语法如下:

SELECT RANK() OVER (ORDER BY column_name) AS rank, column_name FROM table_name;
DENSE_RANK 函数

DENSE_RANK 函数和 RANK 函数类似,但是会跳过相同的排名。语法如下:

SELECT DENSE_RANK() OVER (ORDER BY column_name) AS rank, column_name FROM table_name;
NTILE 函数

NTILE 函数用于将数据划分为指定数量的桶,返回每个桶中数据的排名。常用于数据分析和数据集成。语法如下:

SELECT NTILE(n) OVER (ORDER BY column_name) AS bucket, column_name FROM table_name;
总结

聚合函数和窗口函数是 SQL 中常用的计算函数,可以帮助我们对数据进行统计和分析。在使用这些函数时应特别注意函数的语法和用法,使得计算结果更准确。