SPARQL绑定(计数(…)为…)不工作
我正在尝试为一个变量分配一个计数,以便以后在查询(SPARQL)中使用 我甚至无法让以下各项发挥作用:SPARQL绑定(计数(…)为…)不工作,sparql,blazegraph,Sparql,Blazegraph,我正在尝试为一个变量分配一个计数,以便以后在查询(SPARQL)中使用 我甚至无法让以下各项发挥作用: SELECT ?resultsCount WHERE{ ?subject ?predicate ?object. BIND(COUNT(?object) AS ?resultsCount) } 这里我的语法或语义有问题,因为我只是得到一个重复多次的空结果?resultcount,而不是简单的,例如86(结果数) 但是,当我执行以下操作时,我得到的结果数(例如86): SELE
SELECT ?resultsCount
WHERE{
?subject ?predicate ?object.
BIND(COUNT(?object) AS ?resultsCount)
}
这里我的语法或语义有问题,因为我只是得到一个重复多次的空结果?resultcount
,而不是简单的,例如86(结果数)
但是,当我执行以下操作时,我得到的结果数(例如86):
SELECT (COUNT(?object) AS ?resultsCount)
WHERE{
?subject ?predicate ?object
}
有没有办法让BIND
与第一个示例中的COUNT
一起工作?如果没有,是否有不同的正确方法来获得相同类型的功能
我使用的是Blazegraph 2.1.2。这可能是一个bug吗?count是一个聚合函数。要使用计数,您需要在查询中使用分组依据,并在投影中使用计数Count将统计每组中的结果数。您还可以将distinct与count一起使用,因此您可以执行以下操作来获取每个主题的不同对象的数量:
select ?subject (count(?object) as ?numObjects) {
?subject ?predicate ?object
}
group by ?subject
如果您只是想计算匹配的数量,那么您可以使用count,而不使用groupby(这将为您提供一个单一的隐式组):
count是一个聚合函数。要使用计数,您需要在查询中使用分组依据,并在投影中使用计数Count将统计每组中的结果数。您还可以将distinct与count一起使用,因此您可以执行以下操作来获取每个主题的不同对象的数量:
select ?subject (count(?object) as ?numObjects) {
?subject ?predicate ?object
}
group by ?subject
如果您只是想计算匹配的数量,那么您可以使用count,而不使用groupby(这将为您提供一个单一的隐式组):