我有这个独特的问题,我想根据不同边缘返回的值进行计算,看起来它似乎不适合我。
我的图表的功能是跟踪人们收集的Magic:The Gathering cards。请使用图表作为我的问题的插图。
我想以#8:0
作为起点,看看哪些牌组(MDeck
)拥有牌(MCard
)我拥有并计算我已经拥有的牌组的百分比我的收藏。我的查询开头是这样的:
SELECT FROM (SELECT FLATTEN(out[label="has"]) FROM #8:0) WHERE in.in.size() > 1
这是为了获得属于甲板的我拥有的牌。接下来,如果我有一张卡片比卡片上所需的更多,我只计算所需的卡片,所以我不得不使用MIN()。这就是出现问题的地方:
SELECT
MIN(UNION(in.in[label="includes"].qty, qty))
FROM (
SELECT
FLATTEN(out[label="has"])
FROM #8:0
)
WHERE in.in.size() > 1
我认为这会解决问题,但它只返回null。我确保所有的数量字段都是整数。我错过了什么吗?
谢谢,
Ramon的
答案 0 :(得分:0)
您是否拥有使用OrientDB控制台或Studio执行查询的公共数据库?
如果不能,您可以在此报告上次查询的中间结果吗?例如:
SELECT
in.in[label="includes"].qty
FROM (
SELECT
FLATTEN(out[label="has"])
FROM #8:0
)
WHERE in.in.size() > 1
然后:
SELECT
UNION(in.in[label="includes"].qty, qty)
FROM (
SELECT
FLATTEN(out[label="has"])
FROM #8:0
)
WHERE in.in.size() > 1