2

我想过滤计数结果。我正在使用以下查询:

SELECT (COUNT(*) AS ?total)
WHERE {
    ?s sf:RatioSWO ?o .
 }
GROUP BY ?total

这只会给我谓词的总行数。我已经尝试通过在 COUNT(*) 之后放置“< 0.5”来进行过滤,但这只会给我一个“假”的结果,我不知道这意味着什么。我也尝试过 HAVING 和 FILTER 但都没有给我任何结果。

4

2 回答 2

15

如果你想返回 ?total-s 哪里 ?total < 0.5 你可以这样做:

SELECT (COUNT(*) AS ?total)
WHERE {
    ?s sf:RatioSWO ?o .
}
GROUP BY ?s
HAVING (?total < 0.5)

从这个问题不清楚你的意思。

于 2012-08-10T15:01:54.513 回答
3

我不太确定你想要实现什么,但是这个怎么样:

SELECT (COUNT(*) AS ?total)
WHERE {
    ?s sf:RatioSWO ?o .
    FILTER (?o < 0.5)
}

这会计算sf:RatioSWO值大于 0.5 的三元组的数量。

于 2012-08-09T19:18:59.687 回答