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

SQL查询websites表时如何为每条记录生成最近3天的rundate日期值

可以实现,你只需要将去重后的网站ID列表和最近3天的日期偏移序列做交叉连接即可,参考SQL写法如下(兼容支持VALUES子句的绝大多数数据库,如SQL Server、PostgreSQL、MySQL 8.0+等):

SELECT 
    w.website_id,
    CAST(DATEADD(day, -n.day_offset, GETDATE()) AS DATE) AS rundate
FROM 
    (SELECT DISTINCT website_id FROM websites) w
CROSS JOIN 
    -- 生成0、1、2三个偏移量,对应当天、1天前、2天前,共3天日期
    (VALUES (0), (1), (2)) n(day_offset)
ORDER BY 
    w.website_id, rundate DESC;

执行后即可得到你期望的每个网站ID对应最近3天日期的结果集。

另外需要注意你现有营收查询语句存在逻辑错误:date > %{run_date} AND date < DATEADD(day, -1, %{run_date})的条件不存在符合要求的记录,如果你要查询对应日期的单日营收,可调整为:

SELECT total_revenue 
FROM revenue 
WHERE website_id = %{website_id}% AND CAST(date AS DATE) = %{run_date}

如果你不需要逐天查询,也可以直接在营收表层面直接聚合统计每个网站最近3天的总营收,减少循环查询次数,参考写法:

SELECT 
    w.website_id,
    SUM(IFNULL(r.total_revenue, 0)) AS last_3d_total_revenue
FROM 
    (SELECT DISTINCT website_id FROM websites) w
LEFT JOIN revenue r 
    ON w.website_id = r.website_id 
    -- 时间区间包含最近3天完整日期
    AND r.date >= DATEADD(day, -2, CAST(GETDATE() AS DATE))
    AND r.date < CAST(DATEADD(day, 1, GETDATE()) AS DATE)
GROUP BY w.website_id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:05