【问题标题】:Quicksight: Calculation between two datesQuicksight:两个日期之间的计算
【发布时间】:2022-02-21 18:28:37
【问题描述】:

我从事以下主要领域的酒店预订工作:

  • 预订编号
  • 入住日期
  • 退房日期
  • 夜晚:dateDiff({check-in_date},{check-out_date},"DD")

问题是我有每次预订的总晚数,但我想有一张桌子,上面有每个日期的总晚数。数据示例:

"booking_id","check_in date","check_out date","Nights"
"1010354582","2022-01-01","2022-01-02",1
"1010364988","2022-01-01","2022-01-03",2
"1010366636","2022-01-01","2022-01-03",2
"1010366752","2022-01-01","2022-01-02",1
"1010367996","2022-01-01","2022-01-04",3

而我想要的结果:

"stay_date","Nights"
"2022-01-01",5
"2022-01-02",3
"2022-01-03",1

如何将原始数据集的 check_in 替换为新的“stay_date”,该“stay_date”汇总了同一天住宿的所有预订?

可以直接用Quicksight解决还是我必须对数据库(Mysql)做不同的查询?

【问题讨论】:

  • 您可以将您的数据发布为文本而不是图像吗?
  • 完成@Zakaria。我重新编辑没有图片的帖子

标签: mysql date business-intelligence amazon-quicksight


【解决方案1】:

您需要在 Mysql 上进行不同的查询。您需要创建一个名为dates 的表,其中包含一个字段date。您需要为您可能需要报告的所有日期设置一个日期(例如从 2020 年到 2030 年预填充)。

然后您需要使用自定义 sql 查询来进行连接 是这样的:

SELECT
  dates.date AS stay_date,
  COUNT(DISTINCT booking_id) as Nights
FROM  
  dates LEFT JOIN bookings
    ON 
      dates.date BETWEEN bookings.check_in_date AND bookings.check_out_date - INTERVAL 1 DAY
      AND bookings.check_in_date <= bookings.check_out_date - INTERVAL 1 DAY
GROUP BY 
  dates.date 

【讨论】:

    猜你喜欢
    • 2013-03-30
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多