2016-08-18 55 views
0

我创建了Apache的麒麟(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联合。 在'cube designer - 高级设置'中,我在'includes'中创建了一个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

任何人都知道问题是什么?我是否需要更改“模型创建”或“创建多维数据集”中的一些设置?

任何帮助表示赞赏!

回答

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 
+0

触发您的查询工作,但返回的4计数ID_A = 01和6 ID_A = 03 –

+0

EM ..所以你只计算不同ID_B,然后将修改后的答案应该工作。 –