探索PostgreSQL函数的奥秘

发表时间: 2024-03-05 17:40

统计函数

统计函数用于进行数值计算,如总和、平均值、计数等。

函数名

语法示例

目的

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)

从日期时间中提取特定部分