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

Snowflake SQL三表关联双条件过滤:补充新账号活跃性筛选

完善Snowflake SQL实现双条件账号筛选

业务表结构

1. account_table(别名acc)

old_accountIDnew_accountID
123345
678910

2. userid_table(别名u)

account_nameaccount_id
Musk1123
Musk2345
Zuckerberg1678
Zuckerberg2910

3. activity_table(别名activ)

account_nameactive_l30last_activity_year
Musk1FALSE2009
Musk2TRUE2022
Zuckerberg1FALSE2021
Zuckerberg2TRUE2022

需求说明

需要从account_table中筛选出满足以下两个条件的账号对:

  • 旧账号(old_accountID对应的账号)过去两年有活动(last_activity_year > 2020)
  • 新账号(new_accountID对应的账号)近30天活跃(active_l30 = TRUE)

目标输出:

old_accountIDnew_accountID
678910

现有问题

你当前的SQL仅实现了第一个条件的筛选,未关联验证新账号的活跃状态。

完善后的SQL

SELECT acc.old_accountID, acc.new_accountID
FROM account_table AS acc
-- 关联旧账号的用户信息和活动记录,验证活动年份条件
JOIN userid_table AS u_old 
  ON acc.old_accountID = u_old.account_id
JOIN activity_table AS activ_old 
  ON u_old.account_name = activ_old.account_name
-- 关联新账号的用户信息和活动记录,验证近30天活跃条件
JOIN userid_table AS u_new 
  ON acc.new_accountID = u_new.account_id
JOIN activity_table AS activ_new 
  ON u_new.account_name = activ_new.account_name
WHERE activ_old.last_activity_year > 2020
  AND activ_new.active_l30 = TRUE;

实现逻辑

  1. 以account_table为核心表,分别关联旧、新账号对应的userid_table,获取账号名称
  2. 再分别关联activity_table,分别验证旧账号的活动年份和新账号的近30天活跃状态
  3. 通过WHERE子句同时过滤两个条件,得到符合要求的账号对

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:54:35