变量' x'投影中不存在GROUP BY

时间:2015-12-02 00:48:24

标签: java select rdf sparql sesame

我想算一些市政当局以及我在括号中的工作。但是,我也希望得到另一个变量,但是当我将它添加到SELECT时,我得到了:

  

org.openrdf.query.MalformedQueryException:variable' region_name'在投影中不存在于GROUP BY中。

在我的查询中,我有:

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

我错过了什么?

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

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

1 个答案:

答案 0 :(得分:7)

在SPARQL中,使用聚合函数的每个查询(例如COUNTSUMSAMPLE等)始终使用分组。即使您未在查询中明确指定GROUP BY子句,它也会使用“默认分组”(即所有解决方案所属的单个组)。

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

修复方法是在查询中添加明确的GROUP BY

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