我有以下查询:
SELECT ?tag WHERE {
?r ns9:taggedWithTag ?tagresource.
?tagresource ns9:name ?tag
}
LIMIT 5000
结果是:
abc
abc
abc
abc
abc
abc
abc
abd
ads
anb
我想要得到类似的东西:
tag | count
-----------------
abc 7
abd 1
ads 1
anb 1
我已尝试使用 count(*)
和 count(?tag)
,但收到错误消息 “Variable or "*"Expected ."
有人能告诉我,如何做对吗?
最佳答案
如果您使用 Java 和 Jena 的 ARQ,则可以使用 ARQ's extensions for aggregates 。您的查询将类似于:
SELECT ?tag (count(distinct ?tag) as ?count)
WHERE {
?r ns9:taggedWithTag ?tagresource.
?tagresource ns9:name ?tag
}
LIMIT 5000
original SPARQL specification from 2008不包括聚合,但 the current version, 1.1, from 2013确实如此。
关于count - SPARQL 查询和非重复计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223472/