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

variable 'x' in projection not present in GROUP BY

我想计算市政当局和括号中的内容。但是,我也想获得另一个变量,但是当我将它添加到 SELECT 时,我得到:

org.openrdf.query.MalformedQueryException: variable 'region_name' in projection not present in GROUP BY.

在我的查询中我有:

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

我错过了什么?

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

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

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

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

解决方法是向您的查询添加显式 GROUP BY

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