0

只要 Gooddata 不处理小时数,我们就创建了两个属性数据集(begin_hour 和 end_hour)来处理一天中的小时数(从 00 到 23)。

我们还有一个商店数据集,其中有两个字段来处理每个商店的工作时间(store_begin_hour 和 store_end_hour)。

为了仅从每个商店的工作时间中获取价值,我们制定了以下指标:

select avg(store_temperature) where begin_hour >= store_begin_hour and end_hour <= store_end_hour

首先它起作用了,但我们注意到几个小时(15、16、17)没有数据。然后我们查看了每个小时属性的elements?id,我们发现了问题。

这 3 小时 (15,16,17) 的 element?id 与其他小时的序列不同 (... 13h=22, 14h=23, 15h= 7 , 16h= 6 , 17h= 9 , 18h= 24 ...),所以它没有包含在选择标准中。

我试图删除小时属性值并再次将相同的数据完全加载到这些数据集,但毕竟 id 仍然相同。

有什么方法可以在这 3 个小时内更改这 3 个 ID?

OBS:我所说的“id”不是字段,它是每个属性值的 url 标识符,如下图所示:

属性id

4

3 回答 3

0

我通过在分句中插入这 3 个小时 (15,16,17) 解决了这个问题。

类似于“选择值在哪里(08 到 18 之间的小时)或((15,16,17)中的小时)”。

我知道做这样的黑客是不好的,但显然我别无选择。

谢谢大家的回答!你太棒了!

于 2018-08-27T21:54:18.117 回答
0

一般来说,数字比较例如begin_hour >= store_begin_hour只适用于数字类型,即事实。属性值的内部数字标识符在加载时自动生成,最终用户无法更改。

如果您想将自定义时间维度用于切片和数值过滤,我建议使用其他事实来扩展它(或者可能只需要一天中的分钟的事实)。

只是为了完整起见 - 我在第一段中描述的内容有一个例外 - GoodData 内置日期维度。它的内置日期属性具有双重属性/事实字符,它们可用于切片、聚合和数字比较。

希望能帮助到你,

帕维尔

于 2018-08-24T18:18:01.377 回答
0

有一种方法可以使用自定义日期维度在 GoodData 中处理小时和分钟。

但是要完全回答您的问题,有必要调查您的逻辑数据模型。你能通过support@gooddata.com分享吗?谢谢!

于 2018-08-23T13:38:40.677 回答