0

我在 Apache kylin 中创建了一个多维数据集,其中“ft”是我的事实表,“ls”是维度表之一。两者都连接在“盖子”列上。我的查询

select ft.sid, ls.lid, ls.pos
from(
    select sid, lid
    from ft
    where lid = '1500221'
    group by lid, sid
) as ft inner join (
    select lid, pos
    from ls
    where pos = '14'
) as ls on (ft.lid = ls.lid)

返回一行

1500 1500221 14

到目前为止,一切都很好。省略第一个 where 条件,我的结果也是一行,但这次是另一个......

select ft.sid, ls.lid, ls.pos
from(
    select sid, lid
    from ft
    group by lid, sid
) as ft inner join (
    select lid, pos
    from ls
    where pos = '14'
) as ls on (ft.lid = ls.lid)

返回

0140 0140110 14

两者都是正确的结果,但是第二个查询应该返回不止一行,至少也应该返回第一个查询的结果。

有谁知道这里出了什么问题?

提前致谢, 索伦

4

1 回答 1

0

你可能在处理子查询时遇到了 Kylin 的失败。

但是,为什么在不需要的地方使用子查询呢?下面的简单查询应该可以满足您的需求。

select sid, lid, pos
from ft
inner join ls on ft.lid = ls.lid
where pos = '14'
group by lid, sid, pos
于 2016-08-21T05:17:35.170 回答