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

Amazon AMC SQL查询中如何声明可复用日期变量

Amazon Marketing Cloud (AMC) SQL 日期变量实现方法

AMC 采用的专属SQL方言不支持标准SQL中的DECLARE常量声明语法,要实现跨多表、多日期字段复用的日期参数,可使用以下两种经过验证的可行方案:

方案1:CTE参数表(通用无限制,推荐生产/调度查询使用)

将所有需要复用的参数统一定义在一个CTE公共表表达式中,后续查询通过交叉关联该CTE即可全局调用参数,无需重复硬编码日期值,是AMC中最通用的参数实现方式。
对应需求的示例代码如下:

-- 所有参数统一在此处维护,修改值仅需调整这一段
WITH const_params AS (
    SELECT
        CAST('2022-06-01' AS DATE) AS start_date,
        CAST('2022-06-30' AS DATE) AS end_date -- 可按需新增任意数量、任意类型的参数
)
SELECT
    c.click_date,
    SUM(c.clicks) AS clicks
FROM dsp_clicks c
-- 交叉关联参数表,不会造成数据膨胀,全查询域可访问参数值
CROSS JOIN const_params p
WHERE
    c.click_date > p.start_date -- 直接调用定义好的日期参数
GROUP BY c.click_date

该方案的优势:

  • 参数集中维护,避免全代码查找替换硬编码值的麻烦
  • 支持同时定义日期、数值、字符串等任意类型的参数,无数量限制
  • 跨多表JOIN、多字段过滤、聚合逻辑中均可直接调用参数
  • 兼容所有AMC环境,无功能权限要求,支持API调用、定时调度等场景

方案2:AMC控制台原生参数(适合临时手动查询)

如果是在AMC网页端查询编辑器中做临时分析,可以直接使用编辑器自带的参数化功能:

  • 点击查询编辑区顶部的「添加参数」按钮
  • 选择参数类型为日期,设置参数名称(如start_date)和默认值
  • 在SQL代码中通过${参数名}的格式直接引用即可

示例代码:

SELECT
    click_date,
    SUM(clicks) AS clicks
FROM dsp_clicks
WHERE click_date > ${start_date}
GROUP BY click_date

注意:该方案仅适用于网页端手动执行的临时查询,若需要将查询保存为自定义模板、通过API调用或配置定时调度,优先选择方案1的CTE实现,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:48:25