统计函数用于进行数值计算,如总和、平均值、计数等。
函数名 | 语法示例 | 目的 |
SUM() | SUM(column) OVER (PARTITION BY column) | 计算总和 |
AVG() | AVG(column) OVER (PARTITION BY column) | 计算平均值 |
COUNT() | COUNT(column) OVER (PARTITION BY column) | 计算数量 |
MAX() | MAX(column) OVER (PARTITION BY column) | 计算最大值 |
MIN() | MIN(column) OVER (PARTITION BY column) | 计算最小值 |
STDDEV() | STDDEV(column) OVER (PARTITION BY column) | 计算标准差 |
VARIANCE() | VARIANCE(column) OVER (PARTITION BY column) | 计算方差 |
排名函数用于分配行的排名或序号。
函数名 | 语法示例 | 目的 |
ROW_NUMBER() | ROW_NUMBER() OVER (PARTITION BY column ORDER BY column) | 对行进行编号 |
RANK() | RANK() OVER (PARTITION BY column ORDER BY column) | 分配排名,相同值共享同一排名并跳过下一个排名 |
DENSE_RANK() | DENSE_RANK() OVER (PARTITION BY column ORDER BY column) | 分配排名,相同值共享同一排名且不跳过下一个排名 |
NTILE(n) | NTILE(n) OVER (PARTITION BY column ORDER BY column) | 将数据分为n个等级 |
用于访问窗口中前后行的数据。
函数名 | 语法示例 | 目的 |
LEAD() | LEAD(column, n, default) OVER (PARTITION BY column ORDER BY column) | 访问后n行的数据 |
LAG() | LAG(column, n, default) OVER (PARTITION BY column ORDER BY column) | 访问前n行的数据 |
FIRST_VALUE() | FIRST_VALUE(column) OVER (PARTITION BY column ORDER BY column) | 获取分区内的第一个值 |
LAST_VALUE() | LAST_VALUE(column) OVER (PARTITION BY column ORDER BY column) | 获取分区内的最后一个值 |
字符函数用于处理文本数据。
函数名 | 语法示例 | 目的 |
CONCAT() | CONCAT(string1, string2, ...) | 连接两个或多个字符串 |
LENGTH() | LENGTH(string) | 获取字符串的长度 |
LOWER() | LOWER(string) | 将字符串转换为小写 |
UPPER() | UPPER(string) | 将字符串转换为大写 |
SUBSTRING() | SUBSTRING(string FROM start FOR count) | 从字符串中提取子字符串 |
TRIM() | TRIM(string) | 去除字符串首尾的空白字符 |
POSITION() | POSITION(substring IN string) | 获取子字符串在字符串中的位置 |
日期和时间函数用于处理日期和时间数据。
函数名 | 语法示例 | 目的 |
AGE() | AGE(timestamp1, timestamp2) | 计算两个日期之间的年龄 |
CURRENT_DATE | CURRENT_DATE | 获取当前日期 |
DATE_PART() | DATE_PART('field', timestamp) | 从日期时间中提取部分 |
DATE_TRUNC() | DATE_TRUNC('field', timestamp) | 将日期时间截断到指定的精度 |
EXTRACT() | EXTRACT(field FROM timestamp) | 从日期时间中提取特定部分 |