投影中的可变'x'在分组依据中不存在



我想计算市政当局,括号里的内容有效。然而,我也想获得另一个变量,但当我将其添加到SELECT时,我得到了:

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

在我的查询中,我有:

"SELECT ?region_name (COUNT(?municipality) AS ?count) " +

我错过了什么?

请注意,我的项目中没有任何类似GROUP的东西,我认为它是在Sesame内部发生的。

我只是看到,如果我去掉(COUNT…),我会得到预期的名字。

在SPARQL中,使用聚合函数(如COUNTSUMSAMPLE等)的每个查询总是使用分组。即使您没有在查询中显式指定GROUP BY子句,它也会使用"默认分组"(即所有解决方案所属的单个组)。

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

修复方法是在查询中添加一个显式GROUP BY

SELECT ?region_name (COUNT(?municipality) AS ?count)
WHERE {
  ... 
}
GROUP BY ?region_name 

最新更新