在 PostgreSQL 中,开窗函数 LEAD() 可以用于获取当前行之后的一行或多行的值。默认情况下,如果没有指定默认值,LEAD() 函数将返回 NULL。
以下是 LEAD() 函数的语法:
sql复制代码
| LEAD(expression [, offset [, default]]) OVER (PARTITION BY partition_expression ORDER BY sort_expression) |
其中:
expression 是要获取的值或表达式。
offset 是指定偏移量的整数值,表示要获取的行数。默认为 1,即获取当前行之后的一行。
default 是可选的默认值,当没有可用的后续行时将返回该值。如果未指定默认值,则返回 NULL。
PARTITION BY 子句可选,用于指定分区的列。如果没有指定,则使用整个结果集作为一个分区。
ORDER BY 子句指定用于排序的列。
下面是一个示例,展示如何使用 LEAD() 函数并设置默认值:
sql复制代码
| SELECT column1, column2, LEAD(column2) OVER (ORDER BY column1) AS lead_value, LEAD(column2, 1, 'N/A') OVER (ORDER BY column1) AS lead_value_with_default |
| FROM your_table; |
在上面的示例中,我们假设有一个名为 your_table 的表,其中包含 column1 和 column2 两列。通过使用 LEAD() 函数,我们获取了 column2 列在当前行之后的行的值,并将其命名为 lead_value。另外,我们还使用 LEAD() 函数设置了默认值 'N/A',如果没有可用的后续行,则返回该默认值,并将结果命名为 lead_value_with_default。