df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

列表元素运算

困难 18-nested 列表与结构体 listfiltertransformlambdaexplode

每个学生有一个分数列表 scores。对每个学生:

  1. 只保留 ≥ 60 的分数(恰好 60 也保留);
  2. 保留下来的每个分数各加 5 分;
  3. 把它们求和,记为 total。

规则:

  • 列表里为 null 的元素直接忽略。
  • 没有任何分数被保留时(包括空列表、null 列表、全部低于 60),total 为 0。
  • 每个学生一行。

输入

  • students(student_id, name, scores):scores 是整数列表,可能为空列表或 null,元素也可能是 null

输出

列为 student_id, total,行顺序不限。

输入表 (case base,共 2 个 case:base、edge)

students local/base/students
#student_idint64namestringscoreslist<int64>
1 1 Ann [88, 72, 95]
2 2 Bob [55, 61, 40, 90]
3 3 Cai [100]
4 4 Dan [59, 58]
5 5 Eve [70, 70, 80, 65, 99]
共 5 行

期望输出 (case base,行顺序不限)

#student_idInt64totalDecimal(precision=38, scale=0)
1 1 270.0
2 2 161.0
3 3 105.0
4 4 0.0
5 5 409.0
共 5 行