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

价格分档

简单 04-expr 新列与条件表达式 case-whenbinningNone

按价格给商品分档,新增一列 band:

条件 band
price < 50 low
50 ≤ price < 200 mid
price ≥ 200 high
  • 边界值归入上一档:价格恰好 50 是 mid,恰好 200 是 high。
  • price 为 null 时 band 也为 null,不要归入任何一档(第二个 case 里有)。

输入

  • products(product_id, name, category, price, cost, launched_on)

输出

列为 product_id, price, band,每个商品一行,行顺序不限。

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

products shop/products
#product_idint64namestringcategorystringpricefloat64costfloat64launched_ondate
1 1 Wireless Mouse Electronics 25.0 16.77 2025-05-07
2 2 USB-C Hub Electronics 49.9 34.17 2025-07-27
3 3 Bluetooth Speaker Electronics 89.0 61.47 2025-02-10
4 4 Mechanical Keyboard Electronics 199.0 105.48 2024-09-19
5 5 4K Monitor Electronics 500.0 282.38 2024-07-10
6 6 Noise-cancel Headphones Electronics 299.0 211.57 2025-01-14
7 7 Python Cookbook Books 59.0 30.08 2025-09-15
8 8 SQL Pocket Guide Books 39.9 22.14 2025-01-20
9 9 数据分析实战 Books 79.0 40.83 2024-12-15
10 10 Clean Code Books 50.0 28.48 2025-03-13
11 11 统计学习方法 Books 99.0 70.22 2025-03-13
12 12 Desk Lamp Home 45.0 24.99 2025-11-04
13 13 Ceramic Mug Home 19.9 11.34 2025-12-02
14 14 Throw Pillow Home 35.0 19.23 2024-06-29
15 15 Wall Clock Home 99.0 47.98 2025-02-23
16 16 Storage Box Home 29.9 15.06 2025-02-27
17 17 Puzzle 1000pc Toys 129.0 59.53 2025-08-19
18 18 Building Blocks Toys 199.0 110.19 2025-04-18
19 19 RC Car Toys 359.0 208.55 2025-11-06
20 20 Plush Panda Toys 89.0 43.14 2026-01-12
显示前 20 行,共 30 行

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

#product_idInt64priceFloat64bandString
1 1 25.0 low
2 2 49.9 low
3 3 89.0 mid
4 4 199.0 mid
5 5 500.0 high
6 6 299.0 high
7 7 59.0 mid
8 8 39.9 low
9 9 79.0 mid
10 10 50.0 mid
11 11 99.0 mid
12 12 45.0 low
13 13 19.9 low
14 14 35.0 low
15 15 99.0 mid
16 16 29.9 low
17 17 129.0 mid
18 18 199.0 mid
19 19 359.0 high
20 20 89.0 mid
21 21 100.0 mid
22 22 249.0 high
23 23 699.0 high
24 24 15.0 low
25 25 39.9 low
26 26 200.0 high
27 27 12.5 low
28 28 49.9 low
29 29 159.0 mid
30 30 22.0 low
共 30 行