纯 Expression API
中等
25-duckdb-rel-only DuckDB Relational 专属
expression-apicasefunctionno-sql-strings
从商品表里筛出 Books、Toys、Sports 三个品类中有价格的商品,并计算几列派生值。
- 品类按字面值精确匹配(区分大小写,
books 不算 Books);price 为 null 的商品不要。
name_upper:name 转成大写。
margin:price - cost;cost 为 null 时为 null。
tier:price >= 100 时为 'high',否则为 'low'。
本题限制:只能用 DuckDB 的 Expression API(列表达式、常量表达式、CASE 表达式、函数表达式)构造条件和列,filter、select/project、aggregate、order/sort 等方法的参数里不能出现任何字符串字面量(判题会静态检查)。列名、函数名、常量值写在表达式构造函数里是可以的。
输入
products(product_id, name, category, price, cost, launched_on)(已绑定为 relation)
输出
列为 product_id, name_upper, margin, tier,行顺序不限。
输入表 (case base,共 2 个 case:base、edge)
期望输出 (case base,行顺序不限)
| # | product_idInt64 | name_upperString | marginFloat64 | tierString |
| 1 |
7 |
PYTHON COOKBOOK |
28.92 |
low |
| 2 |
8 |
SQL POCKET GUIDE |
17.76 |
low |
| 3 |
9 |
数据分析实战 |
38.17 |
low |
| 4 |
10 |
CLEAN CODE |
21.52 |
low |
| 5 |
11 |
统计学习方法 |
28.78 |
low |
| 6 |
17 |
PUZZLE 1000PC |
69.47 |
high |
| 7 |
18 |
BUILDING BLOCKS |
88.81 |
high |
| 8 |
19 |
RC CAR |
150.45 |
high |
| 9 |
20 |
PLUSH PANDA |
45.86 |
low |
| 10 |
21 |
YOGA MAT |
49.3 |
high |
| 11 |
22 |
DUMBBELL SET |
84.0 |
high |
| 12 |
23 |
RUNNING SHOES |
275.42 |
high |
| 13 |
24 |
JUMP ROPE |
5.16 |
low |
| 14 |
25 |
WATER BOTTLE |
17.59 |
low |
共 14 行
参考答案 · 纯 Expression API