SQL中如何用括号分组匹配多个subscription_id实现批量数据筛选
要实现批量匹配多个subscription_id,你可以用SQL的IN操作符替换原条件中的=即可,操作符后方括号内按逗号分隔填写所有需要匹配的id值。
完整查询示例(包含总金额统计逻辑)
-- 统计指定时间范围内目标订阅的总金额,total_subscription_amount为最终统计结果的别名 SELECT SUM(o.amount) AS total_subscription_amount FROM orders o WHERE o.created_at BETWEEN '2021-06-01' AND '2021-08-31' -- IN后括号内可按逗号分隔追加所有需要筛选的subscription_id AND o.subscription_id IN ('1567', '1568', '1569', 'xxxx' /* 其余ID按相同格式补充即可 */) ;
补充说明
- 上述示例中
o.amount为订单表的金额字段,如果你表中存储金额的字段名不同,替换为实际字段名即可。 - 如果你的subscription_id字段是数字类型,可以去掉ID值外的单引号,减少不必要的类型转换开销。
- 如果你需要筛选的100多个ID存在统一的业务规则、或存储在其他关联表中,可以用子查询替代手动枚举ID,避免手动粘贴的出错概率,示例逻辑为
o.subscription_id IN (SELECT id FROM 存储订阅ID的关联表 WHERE 筛选符合要求ID的业务条件)。
内容的提问来源于stack exchange,提问作者Rob Lynam-Wilkes
相关产品推荐
相关产品推荐

