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

组合条件

简单 02-filter 过滤 filterand-orNoneprecedence

找出满足以下条件的订单:状态为 paid,并且(渠道为 app,或者渠道缺失)。

  • “渠道缺失”指 channel 为 null。
  • 两个条件的组合关系以上面的括号为准:状态不是 paid 的订单,即使渠道缺失也不要。
  • 字符串比较区分大小写。

输入

  • orders(order_id, customer_id, order_ts, status, channel)

输出

保留订单表的全部列:order_id, customer_id, order_ts, status, channel,行顺序不限。

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

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

#order_idInt64customer_idInt64order_tsDatetime(time_unit='us', time_zone=None)statusStringchannelString
1 1001 39 2026-01-01 19:38:00 paid app
2 1002 16 2026-01-17 14:07:00 paid app
3 1004 2 2026-05-23 10:48:58 paid null
4 1009 2 2025-10-05 04:53:38 paid app
5 1010 4 2026-02-19 01:39:54 paid app
6 1014 2 2026-02-09 01:41:41 paid app
7 1024 47 2026-02-26 18:42:02 paid null
8 1028 36 2026-01-12 18:12:02 paid app
9 1031 5 2026-02-14 10:30:00 paid app
10 1034 5 2026-02-14 10:30:00 paid app
11 1041 32 2026-04-22 15:13:08 paid app
12 1047 8 2026-01-09 09:26:50 paid app
13 1048 5 2025-12-14 00:07:09 paid app
14 1049 44 2026-07-31 23:48:12 paid app
15 1052 9 2026-04-01 00:00:00 paid app
16 1061 40 2025-08-29 12:05:02 paid app
17 1070 18 2025-11-21 08:19:18 paid null
18 1074 25 2026-09-27 02:16:14 paid null
19 1077 49 2026-03-12 11:45:00 paid app
20 1079 38 2026-07-21 21:45:24 paid app
21 1080 11 2025-09-28 02:53:58 paid null
22 1083 39 2025-12-06 12:27:00 paid app
23 1090 19 2026-07-23 23:00:54 paid app
24 1094 12 2026-05-06 19:29:01 paid null
25 1097 17 2026-05-01 15:44:19 paid app
26 1098 26 2026-01-09 18:42:00 paid null
27 1099 22 2026-07-09 09:32:23 paid app
28 1101 18 2026-05-12 04:04:43 paid null
29 1105 29 2025-08-11 19:27:45 paid app
30 1109 22 2026-06-14 03:11:11 paid app
31 1114 16 2026-07-11 09:15:35 paid app
32 1115 50 2026-05-13 07:37:11 paid null
33 1116 29 2026-03-03 06:48:10 paid app
34 1120 5 2026-01-28 23:24:36 paid app
35 1123 9 2026-02-01 19:21:59 paid app
36 1127 22 2026-07-22 18:31:53 paid app
37 1129 5 2025-10-02 18:02:37 paid app
38 1133 34 2026-06-06 16:52:09 paid app
39 1134 49 2026-02-14 23:29:24 paid app
40 1144 26 2026-01-28 08:40:00 paid app
41 1151 21 2026-08-13 23:29:31 paid app
42 1152 18 2025-12-11 13:16:00 paid app
43 1153 5 2026-02-15 11:13:43 paid app
44 1158 2 2026-04-10 06:07:03 paid null
45 1159 27 2025-12-10 13:50:00 paid app
46 1163 47 2025-11-23 17:08:17 paid app
47 1167 2 2026-07-31 05:19:21 paid app
48 1168 2 2026-05-01 08:40:42 paid app
49 1172 null 2026-08-05 10:22:03 paid null
50 1173 25 2025-10-05 12:00:32 paid app
显示前 50 行,共 58 行