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

左连接补 0

简单 11-join 连接 joinleftfill-zerocount

统计每个客户的订单数,没下过单的客户也要列出来。

  • 以客户表为准,每个客户恰好一行。
  • n_orders:该客户的订单数(所有状态都算);没有订单的客户为 0(不是 null)。
  • 订单表里 customer_id 为 null 或在客户表里查不到的订单不属于任何客户,不计入。

输入

  • customers(customer_id, name, email, city, signup_date, tier)
  • orders(order_id, customer_id, order_ts, status, channel)

输出

列为 customer_id, name, n_orders,行顺序不限。

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

customers shop/customers
#customer_idint64namestringemailstringcitystringsignup_datedatetierstring
1 1 Fang Wang fang.wang@shop.io Beijing 2025-03-13 silver
2 2 Dana Xu dana.xu@mail.cn null 2025-02-17 silver
3 3 Li Zhou li.zhou@example.com Guangzhou 2025-10-07 bronze
4 4 Ping Wang ping.wang@example.com null 2025-05-23 gold
5 5 Tom Zhang tom.zhang@example.com Shenzhen 2025-06-26 gold
6 6 王芳 user06@shop.io Hangzhou 2025-02-10 gold
7 7 Victor Xu victor.xu@example.com Shanghai 2025-12-05 bronze
8 8 Dana Chen dana.chen@example.com Hangzhou 2025-11-22 bronze
9 9 Uma Chen uma.chen@shop.io Guangzhou 2025-11-28 null
10 10 Ivy Zhou ivy.zhou@shop.io Hangzhou 2025-07-14 gold
11 11 Mia Smith mia.smith@mail.cn Shanghai 2025-04-28 gold
12 12 Xin Yang xin.yang@example.com Chengdu 2026-01-03 silver
13 13 Xin Smith xin.smith@mail.cn Beijing 2025-05-07 silver
14 14 Zoe Xu zoe.xu@mail.cn Beijing 2025-09-18 silver
15 15 Fang Liu fang.liu@shop.io Guangzhou 2025-08-05 bronze
16 16 杨磊 user16@mail.cn Shanghai 2025-12-15 silver
17 17 Ping Smith ping.smith@mail.cn null 2025-08-11 bronze
18 18 Oscar Zhou oscar.zhou@example.com Shanghai 2025-11-17 null
19 19 Kevin Liu kevin.liu@mail.cn Chengdu 2026-02-03 gold
20 20 Sara Wu sara.wu@example.com null 2025-07-05 gold
显示前 20 行,共 50 行
orders shop/orders
#order_idint64customer_idint64order_tsdatetimestatusstringchannelstring
1 1001 39 2026-01-01 19:38:00 paid app
2 1002 16 2026-01-17 14:07:00 paid app
3 1003 4 2026-01-08 15:40:20 cancelled web
4 1004 2 2026-05-23 10:48:58 paid null
5 1005 12 2026-06-22 11:07:22 paid store
6 1006 17 2026-08-15 05:15:25 paid web
7 1007 9 2026-06-11 01:00:32 refunded store
8 1008 45 2026-09-19 20:47:10 paid web
9 1009 2 2025-10-05 04:53:38 paid app
10 1010 4 2026-02-19 01:39:54 paid app
11 1011 28 2026-03-05 03:04:45 refunded store
12 1012 2 2026-08-01 07:09:17 paid web
13 1013 26 2026-01-22 03:48:14 refunded store
14 1014 2 2026-02-09 01:41:41 paid app
15 1015 5 2026-08-03 19:49:04 refunded web
16 1016 26 2026-02-16 00:43:43 refunded app
17 1017 9 2025-12-06 04:48:57 pending app
18 1018 999 2026-05-19 12:13:43 paid store
19 1019 26 2026-02-05 15:02:26 paid store
20 1020 44 2025-11-24 11:19:00 cancelled web
显示前 20 行,共 200 行

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

#customer_idInt64nameStringn_ordersInt64
1 2 Dana Xu 19
2 4 Ping Wang 4
3 5 Tom Zhang 16
4 6 王芳 3
5 8 Dana Chen 2
6 9 Uma Chen 13
7 10 Ivy Zhou 1
8 14 Zoe Xu 2
9 16 杨磊 2
10 18 Oscar Zhou 15
11 25 张伟 3
12 26 Mia Xu 14
13 31 Nina Zhang 2
14 32 Wei Zhang 2
15 36 陈静 3
16 43 Rui Smith 2
17 44 Eric Lee 2
18 45 Oscar Wang 4
19 46 Grace Smith 2
20 47 Fang Zhang 3
21 49 Lin Smith 2
22 50 Hao Chen 4
23 15 Fang Liu 0
24 23 李娜 0
25 33 Bob Liu 0
26 41 Lin Zhou 0
27 48 Hao Zhao 0
28 1 Fang Wang 2
29 3 Li Zhou 3
30 11 Mia Smith 4
31 12 Xin Yang 13
32 13 Xin Smith 1
33 17 Ping Smith 3
34 19 Kevin Liu 2
35 20 Sara Wu 3
36 21 Rui Chen 8
37 22 刘洋 5
38 24 Kevin Lee 2
39 27 Amy Huang 3
40 28 Nina Wu 3
41 29 Bob Smith 6
42 30 Eric Chen 1
43 34 Qing Zhao 5
44 35 Qing Chen 1
45 37 Chen Smith 1
46 38 Dana Zhao 3
47 39 Sara Chen 2
48 40 Chen Wang 2
49 42 Ivy Wu 3
50 7 Victor Xu 0
共 50 行