You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计提交退货申请后完成第二次购买的地址数量?

正确SQL实现方案

原SQL存在的问题

  • order是SQL保留关键字,直接作为表名会触发语法错误,需要用标识符转义(如MySQL用反引号`包裹,PostgreSQL用双引号"包裹)。
  • 未排除退货对应的原订单,若退货申请日期晚于原订单日期,会误将原订单当作后续购买统计。
  • LEFT JOIN加WHERE过滤非空订单的写法等价于INNER JOIN,用EXISTS判断存在性更高效且逻辑更清晰。

正确SQL语句

SELECT COUNT(DISTINCT r.Address)
FROM `Return` r
WHERE EXISTS (
    SELECT 1
    FROM `Order` o
    WHERE o.Address = r.Address
      AND o.Order_date > r.Return_request_date
      AND o.Order_id != r.Order_id -- 排除退货对应的原订单
)

逻辑说明

  1. 遍历所有退货记录,针对每个退货地址检查是否存在符合条件的后续订单。
  2. 筛选条件:地址相同、订单日期晚于退货申请日期、且不是被退货的原订单。
  3. 最后统计满足条件的唯一地址数量。

结合示例数据,该SQL会返回1(仅Address1符合条件),符合需求预期。

内容的提问来源于stack exchange,提问作者Xinxinzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 07:24:12