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

Teradata中实现客户表与日历表交叉连接,生成全量客户-日期记录

Teradata实现客户与日历日期全量关联方案

要实现每个客户对应日历表中所有日期生成一条记录,本质是生成两个表的笛卡尔积,在Teradata中通过**交叉连接(CROSS JOIN)**即可直接实现,它会返回两个表所有行的组合结果。

实现SQL代码

SELECT
    c.Date,
    cust.ID,
    cust.Name,
    cust.Country
FROM
    Calendar c
CROSS JOIN
    Customer cust;

表结构与数据说明

Calendar表(日历表)

Date
2024-01-01
2024-01-02
2024-01-03
...

Customer表(客户表)

IDNameCountry
101Mickey MouseFrance
102Minnie MouseFrance
103Daffy DuckSpain
.........

预期结果示例

DateIDNameCountry
2024-01-01101Mickey MouseFrance
2024-01-02101Mickey MouseFrance
2024-01-01102Minnie MouseFrance
2024-01-02102Minnie MouseFrance
............

注意事项

  • 交叉连接会生成大量数据,数据量等于日历表行数 × 客户表行数,如果两个表数据量较大,建议添加过滤条件(比如限定日期范围WHERE c.Date BETWEEN '2024-01-01' AND '2024-01-31')来减少输出数据量,避免性能问题。
  • 确保Calendar表中的Date字段格式为yyyy-mm-dd,与需求一致,避免日期格式转换错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:33:43