如何过滤到数据集中的最后7天。
仅仅过滤过去的7天是行不通的,因为报告的天数并不总是连续的。我不能用过去的10天来抓他们,因为我需要限制在7。
假设我的数据集中有一个日期列,如下所示:
COMPLETED_DATE:
05/09/2022
05/06/2022
05/05/2022
05/04/2022
05/03/2022
04/20/2022
04/18/2022
04/17/2022
04/16/2022我需要查看显示与最近7个报告日期相关的结果,如下所示:
COMPLETED_DATE:
05/09/2022
05/06/2022
05/05/2022
05/04/2022
05/03/2022
04/20/2022
04/18/2022这是我可以用内置过滤器做的事情,还是我需要编写一些LookML来完成这个任务?
我猜我也许能写一个维度来完成这个任务。我在网上找到了最后一次约会的过滤维度。我不知道怎样才能在过去的7天里把这句话重来过滤。
dimension: latest_date { type: yesno sql: ${created_date} = max(${created_date}) ;; }发布于 2022-05-24 15:52:30
通过编辑查询数据以包含排序行解决了该问题。这让我们可以根据这个列对排名进行过滤。
以下是围观者论坛上的一些答复:
我的解决办法如下:
结果是移除“按部分划分”,解决了计数问题。在看到一个错误后,我删除了它,该错误说ORDER_BY是OVER子句所必需的,并且出于某种原因,促使我检查如果删除PARTITION BY部分,它会说什么。不管出于什么原因,现在使用ROW_NUMBER和RANK显示计数,没有问题。
Select received_date, ROW_NUMBER() OVER(ORDER BY received_date DESC) from
(SELECT distinct CAST(received_time as DATE) received_date FROM TABLE_NAME) s
WHERE received_date <= '2022-04-12'
ORDER BY received_date DESC和
Select received_date, RANK() OVER(ORDER BY received_date DESC) from
(SELECT distinct CAST(received_time as DATE) received_date FROM TABLE_NAME) s
WHERE received_date <= '2022-04-12'
ORDER BY received_date DESC这两项成果都是:
received_date RANK
2022-04-12 1
2022-04-11 2
2022-04-10 3
2022-04-08 4
2022-04-07 5
2022-04-06 6
2022-04-05 7如您所见,我得到了我正在寻找的计数,因为我们在可用日期中没有04-09日期,并且计数转移到下一个日期。
发布于 2022-05-16 02:31:29
您可以在不需要更改LookML的情况下做到这一点:
COMPLETED_DATE创建一个探索和排序rank的辅助表计算,并将其定义为max(row()) - row() + 1。本专栏将计算从最近到最旧的报表编号。rank小于或等于所需报告数的报表发布于 2022-05-23 20:02:20
根据您对报告日期的了解,您有两种方法。
1.
https://stackoverflow.com/questions/72186522
复制相似问题