我想算一下市政当局以及括号内的内容。但是,我也想获取另一个变量,但是当我将其添加到SELECT时,我得到了:
org.openrdf.query.MalformedQueryException:投影中的变量“ region_name”在GROUP BY中不存在。
在我的查询中,我有:
"SELECT ?region_name (COUNT(?municipality) AS ?count) " +
我想念什么?
请注意,我项目中的任何地方都没有类似GROUP的东西,我认为这是在芝麻内部发生的。
我刚刚看到,如果删除(COUNT ...),我将得到预期的名称。
最佳答案
在SPARQL中,每个使用聚合函数的查询(例如COUNT
,SUM
,SAMPLE
等)始终使用分组。即使您没有在查询中明确指定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/