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

如何基于trade_table与trading_days表计算实际交易日差值

计算实际交易日差值的SQL方案

原始数据表

trade_table

idstart_datetransacted_date
A12022-02-142022-02-17
A12022-02-172022-02-25
A52022-02-152022-02-19
A62022-02-21NULL

trading_days

trade_date
2022-02-14
2022-02-15
2022-02-16
2022-02-17
2022-02-19
2022-02-21
2022-02-23
2022-02-25

需求

基于trade_table中的start_date和transacted_date字段,结合trading_days表计算实际交易日差值(若transacted_date为NULL则返回NULL)。

预期输出

idstart_datetransacted_datetransact_in_days
A12022-02-142022-02-173
A12022-02-172022-02-254
A52022-02-152022-02-193
A62022-02-21NULLnull

解决方案

根据预期结果,需要统计**start_date之后到transacted_date之间(包含transacted_date)的交易日数量**,以下是实现SQL:

SELECT 
    t.id,
    t.start_date,
    t.transacted_date,
    CASE 
        WHEN t.transacted_date IS NULL THEN NULL
        ELSE (
            SELECT COUNT(*) 
            FROM trading_days td
            WHERE td.trade_date > t.start_date 
              AND td.trade_date <= t.transacted_date
        )
    END AS transact_in_days
FROM trade_table t;

逻辑说明

  1. 用CASE语句处理transacted_date为NULL的情况,直接返回NULL。
  2. 子查询关联trading_days表,统计符合日期范围的记录数,得到实际交易日差值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:01:10