按星期几和一天中的小时划分的德鲁伊组

Druid Group by Day of Week and Hour of Day

我正在尝试找到如何按星期几以及 Druid 中的一天中的小时进行分组。我在这里依赖 Druid 文档:https://druid.apache.org/docs/latest/querying/sql.html,以下所有功能都来自此页面。

我知道Druid有一个函数TIME_SHIFT(<timestamp_expr>, <period>, <step>, [<timezone>])可以把时间戳按照ISO8601标准的时间段进行取整,然后我们可以根据取整后的时间戳进行分组,实现我们想要的按天时间段分组.

  1. 但是,如果我想按星期几分组,这样我就可以汇总一段时间内所有星期一,星期二,星期三,...,星期日收到的所有销售收入怎么办?我知道有一个TIME_EXTRACT(<timestamp_expr>, [<unit>, [<timezone>]])函数,我也许可以通过使用这个函数和=DOW(星期几)将每个时间戳转换为数字(1到7)然后分组来实现我想要的通过每个提取的值。对吗?
  2. 如果我想按一天中的小时分组怎么办?我在本手册中没有看到单位“一天中的小时”。

提前致谢!

编辑: 它似乎在工作;但是,有没有办法让它打印出星期一、星期二、星期三……而不是 1-7 的数字?我想我可能可以在 select 块中手动进行某种类型的转换,但我想知道是否有更好的方法?再次感谢!

不会TIME_EXTRACT(<timestamp_expr>, HOUR)那样做吗?

对于日期的命名,我相信你可以使用:

TIME_FORMAT(<timestamp_expr>, [<pattern>, [<timezone>]])

对于模式,您似乎可以使用 'EEEE'(对于日期名称的全文形式)。