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

四分位分组

中等 14-window-rank 窗口:排名 ntilebucketrow-number

把所有商品按价格从低到高尽量均分成 4 组,组号 bucket 为 1–4,价格最低的一组为 1。

  • 先把商品排成一列:按 price 升序,价格相同按 product_id 升序。
  • 设共有 n 个商品,每组 n ÷ 4(向下取整)个;余下的 n mod 4 个从前面的组开始,每组多分 1 个。例如 n = 30 时四组依次是 8、8、7、7 个;n = 6 时是 2、2、1、1 个。
  • n 不足 4 时,每个商品自成一组,组号依次为 1、2、…、n。
  • 同价格的商品可能被分到不同的组,这是允许的。

输入

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

输出

列为 product_id, price, bucket(整数),每个商品一行,行顺序不限。

输入表 (case base,共 3 个 case:base、six、three)

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