Quicksight:每月最后一天的汇总

Quicksight: Aggregation Over Last Day of Month

我正在处理图表栏,其中 x 轴是按月汇总的日期。 ¿是否可以按天汇总,但仅通过其他方式使用过滤器显示每个月的最后一天?我看到的另一种可能性是创建一个计算字段来显示聚合期间最后一天的值,但我无法做到这一点 ¿ 可行吗?

我不太确定你正在尝试做什么来提供最好的指导。

如果我必须编写一个表达式来计算该月的最后一天,我会

  1. 使用 truncDate 函数从日期中提取月份和年份信息
  2. 月份加 1,除非是 12 月
  3. 获取月份的第一天(始终以 1 作为日期)
  4. 使用addDateTime减去一天

例如,给定日期 02/19/20(格式为 MM/DD/YYYY)。 02是月份号 20是年份 下个月是03 该月初是 03/01/20 上个月的最后一天是 02/29/20,我将从 3 月 1 日减去一天得到。

calculated field to show the value for the last day of the aggregated period but i have not been able to do it. Is it posible?

使用之前的答案,我在 Quicksight 计算字段中使用了这个公式来获取 'last day of the current month' 的数字。您可以更改 now() 以获取另一个期间的最后一天。

extract("DD",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",now()))))

我终于用发布的公式解决了这个问题:

parseDate
(
concat
(
toString(extract("YYYY",addDateTime(1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("MM",addDateTime(1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("DD",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
)
,'yyyy-MM-dd')

而且因为本月还没有结束,所以我没有最后一天的数据,所以我使用这样的 ifelse:

ifelse(
parseDate(
concat(
toString(extract("YYYY",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("MM",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("DD",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date))))))
,'yyyy-MM-dd') 
>= now()
,addDateTime(-1,"DD",now())
,parseDate(concat(toString(extract("YYYY",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("MM",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
,"-"
,toString(extract("DD",addDateTime(-1,"DD",addDateTime(1,"MM",truncDate("MM",date)))))
)
,'yyyy-MM-dd')
)

最后我创建了以下计算字段:

sumIf(base,formatDate(date,'yyyy-MM-dd') = formatDate({fecha_last_day},'yyyy-MM-dd'))

结果:

The value related to the last day for each month, and for current month the last day with able data