函数名称 | 描述 | |||
---|---|---|---|---|
1 | first(expr[, isIgnoreNull]), first_value(expr[, isIgnoreNull]) | 函数说明:返回第一个值,返回一组行的expr的第一个值。如果isIgnoreNull为true,则仅返回非null值 用法用法:同下 | ||
2 | last(expr[, isIgnoreNull]) last_value(expr[, isIgnoreNull]) | 函数说明:返回最后一个值,返回一组行的expr的最后一个值。如果isIgnoreNull为true,则仅返回非null值 用法: ①last(column_name) OVER (PARTITION BY partition_expression ORDER BY sort_expression) 其中,
②last_value(column_name) OVER (PARTITION BY partition_expression)
| ||
3 | lag(input[, offset[, default]]), | 函数说明:返回偏移前面的值。返回窗口中当前行之前的第二行的输入值。偏移量的默认值为1,默认值为null。如果offseth行的input值为null,则返回null。如果没有这样的偏移行(例如,当偏移为1时,窗口的第一行没有任何前一行),则返回默认值。 用法: ①LAG(A) OVER (PARTITION BY <B> ORDER BY <A>
说明:通过使用Lag函数和PARTITION BY子句,我们可以按照客户ID对订单进行分组,并计算每个分组中上一个订单的日期。这样我们可以轻松地找到每个客户上一个订单的日期。 | ||
4 | lead(input[, offset[, default]]), | 函数说明:返回窗口中当前行之后第二行的输入值。偏移量的默认值为1,默认值为null。如果offseth行的input值为null,则返回null。如果没有这样的偏移行(例如,当偏移为1时,窗口的最后一行没有任何后续行),则返回默认值。 用法:LEAD(A) OVER (PARTITION BY <B> ORDER BY <A>
通过使用Lead函数和PARTITION BY子句,我们可以按照部门ID对员工进行分组,并计算每个分组中下一个员工的薪水。这样我们可以轻松地找到每个部门中下一个员工的薪水。 | ||
5 | rank() | 函数说明:计算值的排名。在 SQL 中,RANK() 函数用于在查询结果中为每一行分配一个排名值。它通常与 OVER 子句一起使用,以便在指定的窗口范围内对数据进行排名。 用法:RANK() OVER (PARTITION BY partition_expression ORDER BY sort_expression)
上述查询将返回一个结果集,其中包含员工ID、姓氏和他们在各自部门中的薪水排名。 | ||
6 | row_number() | 函数说明:为结果集中的每一行分配一个唯一的行号。在Spark SQL中, 用法:row_number() OVER (PARTITION BY partition_expression ORDER BY sort_expression)
上述查询将返回一个结果集,其中包含员工ID、姓氏和他们在各自部门中按照薪水降序排列的行号。 |