OBIEE 计数不考虑应用的过滤器
Posted
技术标签:
【中文标题】OBIEE 计数不考虑应用的过滤器【英文标题】:OBIEE count doesnt take into account applied filters 【发布时间】:2018-12-26 10:37:20 【问题描述】:我正在使用 OBIEE,最近我不得不创建包含以下列的简单分析:
Day
Department
Count of sold items
它们都是属性列。
过滤器是
Day = current day
Department = dep 01
但是在结果中,我看到的已售商品数量不是当天而是所有时间。
我尝试创建在OTHER
维度中计数并在TIME
维度中与级别天数相加的逻辑列。但它显示相同的数字。
可能是什么原因以及如何解决?任何帮助将不胜感激。
编辑
我通过添加被计入标准的item_id
然后将其隐藏在列属性中来获得所需的结果。然后我将它排除在视图属性中,从而产生正确的数据。但这总是必要的行动吗?
【问题讨论】:
rpd 中是否定义了“已售商品计数”? @VictorHDC,最初,它没有在 rpd 中定义。由于每个项目都有自己的唯一 ID,因此我在列公式中使用了 Count("subject Area"."Item_id")。即使我在 rpd 中定义了时间维度和每日级别的聚合,它也显示了错误的数字 你能附上一张你的物理图吗?是否有 3 个维度(部门、产品、时间)和一个销售事实表? 【参考方案1】:获取由 OBIEE 执行的物理查询以比较您的不同版本:
-
编辑您的分析,转到“高级”选项卡并复制已发布的 SQL。
进入“管理”并点击“发出SQL”
复制第 1 步发出的 SQL 并在顶部添加这一行:
设置变量 OBIS_REFRESH_CACHE=1,LOGLEVEL=2;
点击问题 SQL
在管理菜单中,单击“管理会话”并按创建时间降序排序 在语句中查找包含您的 SQL 的记录,然后单击“查看日志” 日志应包含物理查询,因为它是使用日志级别 2 执行的,请查找文本“将查询发送到名为的数据库” 将此物理查询与您通过包含隐藏 item_id 获得的查询进行比较您也可以尝试在 rpd 中定义指标而不设置聚合级别,只需在项目 id 上使用 count distinct 并将所有级别保留为默认值,看看会发生什么。
【讨论】:
感谢@VictorHDC的回复,我按照你说的做了,日志中唯一的区别是隐藏item_id的那个在group by和order by子句中添加了item_id。其他都一样 您的指标在 rpd 中是如何定义的?您是否尝试过对项目 ID 进行计数? 数据库表中没有具有项目计数值的列或属性,所以我在 rpd 中复制了 item_id 列,然后使用 sum 聚合没有结果。我也尝试过 count distinct ,但是当我这样做时,需要 3 秒才能执行的分析开始需要很长时间,比如一个小时。所以我没用过 您的销售事实表上有哪些列?出售的商品数量应该是一个衡量标准。一个简单的销售事实表如下所示:AMMOUNT, QUANTITY, FK_ITEM, FK_TIME,FK_DEPARTMENT 表中没有“售出商品数量”物理列,我在业务层复制了item_id并对其应用了计数聚合,然后重命名为“售出商品数量”。以上是关于OBIEE 计数不考虑应用的过滤器的主要内容,如果未能解决你的问题,请参考以下文章