【发布时间】:2019-05-05 10:35:50
【问题描述】:
我正在尝试运行一个查询,该查询返回每个日历周开始时的库存水平。更具体地说,我想找到每个日历周开始之前的最后一个事件。
SELECT *
FROM (
SELECT *, rank() OVER (PARTITION BY sku, warehouse
ORDER BY timestamp DESC) AS rnk
FROM inventory_value
WHERE timestamp < CAST('2018-11-01' as DATE)
) WHERE rnk = 1
查询应该是这样的,除了我希望它是在开始日期之后的每个星期。
示例输入数据如下所示
sku warehouse timestamp SOH
1 12345678 W31 2018-09-25 14:00:00.000 2322
2 12345678 W31 2018-11-16 00:00:00.000 0
并且在每周开始时,我想返回它之前的行。
例如,对于 11 月 16 日之前的每个星期,我希望它在 9 月返回活动,但 11 月 16 日之后的所有星期,我希望从 16 日开始获取活动。
我很高兴为查询提供开始日期,但对于我的应用程序,我无法每周修改查询。
提前致谢
【问题讨论】:
-
oyu 能否提供示例数据,您的查询似乎很好
-
我会尝试准备一些数据。查询工作正常,除了我不想硬编码日期。我希望它每周返回一次。
标签: sql amazon-athena presto