只要Gooddata不能使用小时,我们就会创建两个属性数据集(begin_hour和end_hour)来处理一天中的小时(从00到23)。
我们还有一个Store数据集,其中有两个字段来处理每个商店的工作时间(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)。然后我们查看了小时属性中每个属性的元素标识,发现了问题。
这3个小时(15,16,17)的元素标识与其他序列不一样(... 13h = 22、14h = 23、15h = 7 , 16h = 6 ,17h = 9 ,18h = 24 ...),因此未包含在选择条件中。
我试图删除小时属性值,并将相同的数据再次完全加载到这些数据集中,但是id毕竟仍然相同。
有什么方法可以在这3个小时内更改这3个ID?
OBS:我要说的“ id”不是一个字段,它是每个属性值的url标识符,就像下面的图片所示:
答案 0 :(得分:0)
在GoodData using the custom date dimension中,有一种方法可以处理小时和分钟。
但是要完全回答您的问题,有必要研究逻辑数据模型。您可以通过support@gooddata.com分享吗?谢谢!
答案 1 :(得分:0)
通常,诸如begin_hour >= store_begin_hour
之类的数字比较仅适用于数字类型,即事实。属性值的内部数字标识符在加载时自动生成,最终用户无法更改。
如果您想将自定义时间维度用于切片和数值过滤,建议您将其扩展为包含其他事实(或者可能只是想了解一天中的某分钟)。
仅出于完整性考虑-我在第一段中描述的内容有一个例外-GoodData内置日期维度。它的内置日期属性具有双重属性/事实字符,可用于切片,汇总和数字比较。
希望有帮助,
帕维尔
答案 2 :(得分:0)
我通过将这3个小时(15、16、17)插入子句解决了这个问题。
类似于“选择值,其中(08到18之间的小时)或((15,16,17)中的小时)”。
我知道进行这样的黑客攻击并不好,但显然我别无选择。
谢谢你们的所有答案!你真棒!