【问题标题】:Apache Kylin: cube settingsApache Kylin:多维数据集设置
【发布时间】:2016-08-18 09:15:07
【问题描述】:

我在 Apache Kylin (1.5.3) 中创建了一个立方体,其中包含 2 个如下所示的表:

Facttable   || Dimensiontable
id_a | id_b ||  id  | pos
------------------------------
01   | 011  || 011  | 1
01   | 011  || 012  | 1
01   | 011  || 013  | 0
01   | 012  || 021  | 1
01   | 013  || 022  | 0
02   | 021  || 023  | 0
02   | 022  || 031  | 1
02   | 023  || 032  | 0
03   | 031  || 033  | 0
03   | 032  || 034  | 1
03   | 033  || 035  | 1
03   | 034  ||
03   | 034  ||
03   | 034  ||
03   | 035  ||
03   | 035  ||

这些表在 facttable.id_b = dimensiontable.id 上是联合的。 在“多维数据集设计器 - 高级设置”中,我在“包含”中创建了一个包含 id_a、id_b 和 pos 的聚合组。

现在我想知道 'pos = 1' 不止一次相关的每个 id_a。

所以在上表的情况下:

id_a | count
------------ 
01   | 2
03   | 3

在“洞察”标签中,我尝试了查询

select ft.id_a, count(ft.id_a)
from(
    select id_a, id_b
    from facttable
    group by id_b, id_a
) as ft inner join (
    select id
    from dimensiontable
    where pos = 1
) as dt on (ft.id_a = dt.id)
group by ft.id_a
having (count(ft.id_a) > 1);

但它会返回

执行 SQL "[query]" 时出错:null

谁知道问题出在哪里?我是否需要更改“模型创建”或“立方体创建”中的某些设置?

感谢任何帮助!

【问题讨论】:

    标签: sql apache kylin


    【解决方案1】:

    对我来说,您的要求如下所示。

    select
        id_a, count(distinct id_b)
    from
        facttable
        inner join dimensiontable
        on facttable.id_b = dimensiontable.id
    where
        pos = 1
    group by
        id_a
    having
        count(distinct id_b) > 1
    

    【讨论】:

    • 触发您的查询有效,但对于 id_a = 01 返回计数 4,对于 id_a = 03 返回计数 6
    • Em.. 所以你只计算不同的 id_b,那么修改后的答案应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多