用于组合重复行

时间:2016-04-08 18:14:55

标签: sql orientdb

我是OrientDb的新手并且感到有些困惑。


我有一些看起来像这样的数据:

md5hash       sessionId  path
------------------------------------
value0        zzz        roosters
value1        aaa        cows
value1        bbb        ducks
value1        bbb        pigs
value1        ccc        chickens
value1        aaa        horses
value2        ggg        sheep



我想要使​​用md5hash value1的所有内容,并且任何重复路径都显示为父md5hash的子项,因此我尝试了以下查询:

SELECT md5hash, sessionId, path, FROM file WHERE md5hash="value1"

这就是我想要的样子:

md5hash       sessionId  path
------------------------------------
value1        aaa        cows
                         horses
value1        bbb        ducks
                         pigs
value1        ccc        chickens



甚至更好,看起来像这样:

md5hash       sessionId  path
------------------------------------
value1        aaa        cows, horses
value1        bbb        ducks, pigs
value1        ccc        chickens



但是每当我添加GROUP BY子句时,它都会消除数据。如果我按sessionId分组,则会遗漏horsespigs

我也和DISTINCT僧侣一样无济于事。我觉得我在这里遗漏了一些非常基本的东西。

这就像我的查询一样:

md5hash       sessionId  path
-------------------------------
value1        aaa        cows
value1        aaa        horses
value1        bbb        ducks
value1        bbb        pigs
value1        ccc        chickens


有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

select md5hash, sessionId, $a.path from (select from file where md5hash="value1")
let $a=(select from file where md5hash="value1" and sessionId=$parent.current.sessionId)
group by sessionId

这是输出:

enter image description here

希望有所帮助

此致