Sparql BIND计数结果WITH A VARIABLE

9me*_*9me 0 sparql

有没有办法count的结果绑定到变量?我尝试过以下(不起作用):

SELECT ?totalSubject WHERE {
  ?s ?p ?o
  BIND(COUNT(?s) AS ?totalSubject)
}
Run Code Online (Sandbox Code Playgroud)

A'B*_*A'B 7

COUNT是一个聚合函数,只能用于定义投影变量.要计算所有匹配项,您的具体示例应为:

SELECT ( COUNT(?s) AS ?totalSubject ) WHERE {

    ?s ?p ?o. 

}
Run Code Online (Sandbox Code Playgroud)

但是,聚合函数通常应用于匹配.例如,要计算按类型分组的主题:

SELECT ?t ( COUNT(?s) AS ?totalSubject ) WHERE {

     ?s a ?t.

} GROUP BY ?t
Run Code Online (Sandbox Code Playgroud)

请注意,在使用聚合函数时,您的查询会受到一些限制:所选变量必须是

  • 包含的简单变量GROUP BY; 要么
  • 聚合或常数值.