2

集計結果をフィルタリングしたい。次のクエリを使用しています。

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

これにより、述語の合計行のみが得られます。COUNT(*) の後に「< 0.5」を配置してフィルタリングを試みましたが、これは「false」という結果しか得られず、それが何を意味するのかわかりません。HAVING と FILTER も試しましたが、どちらも結果が得られません。

4

2 に答える 2

15

?totalが<0.5である?total-sを返したい場合は、次のように実行できます。

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 に答える