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

中位数与 P90

中等 09-aggregate 整表聚合 aggregatemedianquantileinterpolation

计算商品价格的中位数和 90 分位数(P90)。

  • 价格为 null 的商品不参与计算。
  • 中位数:价格个数为偶数时取中间两个价格的平均值。
  • P90 采用线性插值:把非 null 价格从小到大排成 x[0..n-1],位置 h = 0.9 × (n − 1),结果为 x[⌊h⌋] + (h − ⌊h⌋) × (x[⌊h⌋+1] − x[⌊h⌋])。不要取“最接近的那个值”。

输入

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

输出

恰好一行,列为 median_price, p90_price。

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

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,行顺序不限)

#median_priceFloat64p90_priceFloat64
1 84.0 305.0
共 1 行