我想算一些市政当局和我在括号里工作的东西.但是,我想获得另一个变量,但是当我将它添加到SELECT时,我得到:
org.openrdf.query.MalformedQueryException:投影中的变量'region_name'在GROUP BY中不存在.
在我的查询中,我有:
"SELECT ?region_name (COUNT(?municipality) AS ?count) " +
我错过了什么?
请注意,我的项目中没有任何像GROUP这样的东西,我认为它是在Sesame内部发生的.
我刚刚看到,如果我删除(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