首页 > 解决方案 > (Quicksight)是否可以有一个考虑日期字段粒度的计算字段

问题描述

上下文:我有一个快速查看的订单数据集,它与客户数据相结合。因为一个客户可以有多个订单,所以客户数据是重复的,需要进行重复数据删除。

我需要分析客户从注册 ( customer_date_added) 到他们的第一个订单 ( min(order_date_added)) 所需的天数,然后根据 customer_date_add 使用不同的日期粒度对结果进行存储/分组。

这就是我目前的工作(6 种视觉效果对应于 quicksight 中的内置日期粒度:年、季度、月、周、日、小时)

    *Visual 1* - x-axis:customer_date_added (aggregate year), y-axis: 
    ifelse(dateDiff(customer_date_added, min(order_date_added)) < 365, 1, 0)
    
    *Visual 2* - x-axis:customer_date_added (aggregate quarter), y-axis: 
    ifelse(dateDiff(customer_date_added, min(order_date_added)) < 90, 1, 0)
    
    *Visual 3* - x-axis:customer_date_added (aggregate month), y-axis: 
    ifelse(dateDiff(customer_date_added, min(order_date_added)) < 30, 1, 0)
    
    *Visual 4* - x-axis:customer_date_added (aggregate week), y-axis: 
    ifelse(dateDiff(customer_date_added, min(order_date_added)) < 7, 1, 0)

.... ETC

问题:我有很多带有分桶视觉效果的 dateDiff(不仅仅是第一次订购的几天),所以我的字段列表被 , , 等字段超出customer_first_order_within_yearcustomer_first_order_within_quarter此外customer_first_order_within_month,我可以从一年中更改 date_granularity 而不仅仅是一个视觉对象到月我必须为我想要的每个 dateDiff 分析维护 6 个不同的视觉效果。

我想要的: 一个带有两个计算字段(new_customer_with_first_order, new_customer_no_first_order)的视觉对象。当我将 customer_date_add 上的数据粒度更改为新的日期粒度时,会new_customer_with_first_order自动显示在该时间段内添加的客户以及该时间段内的第一个订单。相反new_customer_no_first_order,将显示在该时间段内添加并且在该时间段内没有订单的客户。 new_customer_with_first_order + new_customer_no_first_order = new customers within that time period.

我所尝试的:我对快速查看和商业智能工具相对较新,但对 SQL 有很好的掌握。我曾尝试阅读 Level Aware Aggregation, Window Functions。这些都没有给出使用日期或日期粒度的示例。这似乎是一种流行的分析类型,但也许还不可能?

https://stackoverflow.com/a/63064505/3412268
https://docs.aws.amazon.com/quicksight/latest/user/windowMax-function.html
https://docs.aws.amazon.com/quicksight/latest/user/countOver-function.html
https://docs.aws.amazon.com/quicksight/latest/user/level-aware-aggregations.html

标签: business-intelligenceamazon-quicksight

解决方案


推荐阅读