SELECT 中的非组键变量

Non-group key variable in SELECT

我在 virtuoso 网络界面上成功执行了以下查询(例如:http://live.dbpedia.org/sparql

SELECT ?o (COUNT(?member) as ?memberCount) WHERE {
  ?member <http://purl.org/dc/terms/subject> ?o.
  FILTER isIRI(?o) {
    SELECT ?o WHERE {
      <http://dbpedia.org/resource/Heroic_Purgatory>
      <http://purl.org/dc/terms/subject>
      ?o.
    }
  }
}
ORDER BY ?memberCount
LIMIT 1

当我通过 Apache Jena 执行此查询时,出现异常:

Non-group key variable in SELECT: ?o

我不明白为什么...有什么建议吗?

ORDER BY 之前添加 GROUP BY ?o,解决了我的问题。

那仍然是非法的(并且是当前的 Apache Jena)。

SELECT 只能有 GROUP BY 个变量和聚合。

当没有GROUP BY而是一个聚合时,COUNT这里,那么它是一个隐含的GROUP BY对整个结果(没有GROUP BY键)所以没有直接提到的变量,只有聚合是可能的。