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

基于SQL Presto提取跨日期存在字段变更的客户行数据

Presto SQL实现:提取字段变更的客户记录

核心逻辑

通过关联两张表的Customer ID,对比同一客户在两天的Colour和Pricing type字段,筛选出至少一个字段发生变化的Table B记录。

基础版本(不处理NULL场景)

如果业务中不存在字段为NULL的情况,用以下SQL即可:

SELECT b.*
FROM "Table B" b
JOIN "Table A" a 
  ON a."Customer ID" = b."Customer ID"
WHERE a.Date = '01/01'
  AND b.Date = '02/01'
  AND (a.Colour != b.Colour OR a."Pricing type" != b."Pricing type");

增强版本(处理NULL场景)

如果字段可能出现NULL值,推荐使用Presto支持的IS DISTINCT FROM运算符,它能正确识别NULL与非NULL的差异:

SELECT b.*
FROM "Table B" b
JOIN "Table A" a 
  ON a."Customer ID" = b."Customer ID"
WHERE a.Date = '01/01'
  AND b.Date = '02/01'
  AND (a.Colour IS DISTINCT FROM b.Colour OR a."Pricing type" IS DISTINCT FROM b."Pricing type");

代码说明

  • JOIN通过Customer ID关联两张表,确保对比的是同一客户的两天数据
  • WHERE子句限定两张表的日期,分别对应01/01和02/01的记录
  • 最后通过OR条件筛选出至少一个目标字段发生变更的记录,最终返回Table B中的完整行数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:03:16