SPARQL HAVING 子句给出语法错误

Mah*_*oud 3 sparql dbpedia

我试图让拥有超过 3 本书的作者从 DBPedia 使用以下内容

SELECT ?author (COUNT(*) as ?count) WHERE {?works dbo:author ?author. }

Group by(?author)
ORDER BY DESC (?count)
HAVING (?count > 3)
Run Code Online (Sandbox Code Playgroud)

但我收到语法错误,当我删除 HAVING 子句时,其余部分工作正常,知道可能是什么问题吗?

Erw*_*rth 6

错误告诉您“?count用于聚合之外的结果集”,所以基本上您应该使用“聚合解决方案”,您可以这样做:

SELECT ?author (COUNT(*) as ?count) WHERE {?works dbo:author ?author. }    
Group by ?author
HAVING (COUNT(*) > 3)
ORDER BY DESC (?count)
Run Code Online (Sandbox Code Playgroud)

您可以在这里看到正式语法。