投影中的变量"x"在GROUP BY中不存在

gsa*_*ras 2 java select rdf sesame sparql

我想算一些市政当局和我在括号里工作的东西.但是,我想获得另一个变量,但是当我将它添加到SELECT时,我得到:

org.openrdf.query.MalformedQueryException:投影中的变量'region_name'在GROUP BY中不存在.

在我的查询中,我有:

"SELECT ?region_name (COUNT(?municipality) AS ?count) " +
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

请注意,我的项目中没有任何像GROUP这样的东西,我认为它是在Sesame内部发生的.

我刚刚看到,如果我删除(COUNT ...),我会按预期获得名称.

Jee*_*tra 7

在SPARQL,一个使用聚合函数查询(例如COUNT,SUM,SAMPLE等)始终使用一个分组.即使您没有GROUP BY在查询中明确指定子句,它也会使用"默认分组"(即所有解决方案所属的单个组).

在使用聚合的SPARQL查询中,非聚合变量(例如?region_name)可能不会在SELECT子句中投影,除非它们被明确添加到分组中.

修复是GROUP BY为您的查询添加一个显式:

SELECT ?region_name (COUNT(?municipality) AS ?count)
WHERE {
  ... 
}
GROUP BY ?region_name 
Run Code Online (Sandbox Code Playgroud)