我想算一下市政当局以及括号内的内容。但是,我也想获取另一个变量,但是当我将其添加到SELECT时,我得到了:


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


在我的查询中,我有:

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


我想念什么?

请注意,我项目中的任何地方都没有类似GROUP的东西,我认为这是在芝麻内部发生的。

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

最佳答案

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

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

解决方法是在查询中添加明确的GROUP BY

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

关于java - 投影中的变量“x”在GROUP BY中不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34033021/

10-11 22:22
查看更多