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

寻求Domo(BI工具)及SQL中同比上周同日数据的日期函数方案

今日与上周同日数据对比的实现方案(Domo + SQL)

Domo 实现方法

1. Beast Mode 计算字段(用于可视化卡片)

在Domo的Beast Mode中创建以下计算字段,快速标记今日与上周同日的数据:

  • 标记今日数据:
    CASE WHEN DATE(`your_date_column`) = CURRENT_DATE() THEN 1 ELSE 0 END
    
  • 标记上周同日数据:
    CASE WHEN DATE(`your_date_column`) = DATEADD('day', -7, CURRENT_DATE()) THEN 1 ELSE 0 END
    

在可视化卡片中,基于这两个字段聚合指标(如求和、计数),即可直接对比两组数据。

2. Magic ETL 数据预处理

若需提前完成数据关联,在Magic ETL中添加「Add Formula」工具,生成上周同日的日期字段:

DATEADD('day', -7, CURRENT_DATE())

后续可通过「Join」工具关联原表对应日期的数据,或用「Aggregate」工具分别计算今日与上周同日的指标值。

SQL 实现方案

不同数据库的日期函数略有差异,以下是主流数据库的实现示例:

核心逻辑:获取上周同日日期

  • MySQL:CURDATE() - INTERVAL 7 DAY 或 DATE_SUB(CURDATE(), INTERVAL 7 DAY)
  • PostgreSQL:CURRENT_DATE - INTERVAL '7 days'
  • SQL Server:DATEADD(day, -7, GETDATE())
  • BigQuery:DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)

对比查询示例(以MySQL为例)

SELECT
  CASE 
    WHEN DATE(`date_column`) = CURDATE() THEN '今日'
    WHEN DATE(`date_column`) = CURDATE() - INTERVAL 7 DAY THEN '上周同日'
  END AS date_group,
  SUM(your_metric) AS total_value
FROM your_table
WHERE DATE(`date_column`) IN (CURDATE(), CURDATE() - INTERVAL 7 DAY)
GROUP BY date_group;

注意:若日期字段包含时间戳,需用DATE(date_column)截断时间部分,确保日期匹配准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:17:09