SPARQL绑定(计数(…)为…)不工作

SPARQL绑定(计数(…)为…)不工作,sparql,blazegraph,Sparql,Blazegraph,我正在尝试为一个变量分配一个计数,以便以后在查询(SPARQL)中使用 我甚至无法让以下各项发挥作用: SELECT ?resultsCount WHERE{ ?subject ?predicate ?object. BIND(COUNT(?object) AS ?resultsCount) } 这里我的语法或语义有问题,因为我只是得到一个重复多次的空结果?resultcount,而不是简单的,例如86(结果数) 但是,当我执行以下操作时,我得到的结果数(例如86): SELE

我正在尝试为一个变量分配一个计数,以便以后在查询(SPARQL)中使用

我甚至无法让以下各项发挥作用:

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将统计每组中的结果数。您还可以将distinctcount一起使用,因此您可以执行以下操作来获取每个主题的不同对象的数量:

select ?subject (count(?object) as ?numObjects) {
    ?subject ?predicate ?object
}
group by ?subject
如果您只是想计算匹配的数量,那么您可以使用count,而不使用groupby(这将为您提供一个单一的隐式组):


count是一个聚合函数。要使用计数,您需要在查询中使用分组依据,并在投影中使用计数Count将统计每组中的结果数。您还可以将distinctcount一起使用,因此您可以执行以下操作来获取每个主题的不同对象的数量:

select ?subject (count(?object) as ?numObjects) {
    ?subject ?predicate ?object
}
group by ?subject
如果您只是想计算匹配的数量,那么您可以使用count,而不使用groupby(这将为您提供一个单一的隐式组):