我正在尝试使用今年数据和去年数据创建报告。我目前正在更改此查询中的日期:
SELECT TransactionDate, Source, Medium, Campaign, AdContent,
Keyword, Country, Device, Region,
ROUND(SUM (Revenue),2) AS Equity_Revenue,
ROUND(SUM (Sales),2) Equity_Sales,
FROM (TABLE_DATE_RANGE([analytics.order_attribution_], TIMESTAMP('2018-02-26'), TIMESTAMP('2018-03-04')))
WHERE ReportType = 'Daily Equity Report' AND Channel = 'Email'
GROUP BY TransactionDate, Source, Medium, Campaign, AdContent,
Keyword, Country, Device, Region,
ORDER BY Equity_Revenue DESC;
并更改日期。是否可以在下面添加相同的查询,以便我可以更改日期并运行查询一次
答案 0 :(得分:2)
您可以使用动态日期范围而不是TABLE_DATE_RANGE
的固定日期,这样您就不必编辑查询,以便报告向您显示最新信息。这是LegacySQL中的一个示例,它显示了过去7天的数据:
FROM (TABLE_DATE_RANGE([analytics.order_attribution_],
DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY')))
您还可以将两个字符串组合在一起,以便同时获取所需的周数。
如果你想改变你对StandardSQL的追求,你可以这样做,在那里我拉了两个星期,一个是上周,另一个是去年:
SELECT *
FROM `analytics.order_attribution_*`
WHERE parse_DATE('%y%m%d', _table_suffix)
BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND
DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) OR parse_DATE('%y%m%d', _table_suffix)
BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 372 DAY) AND DATE_SUB(CURRENT_DATE(), INTERVAL 366 DAY)