Я использую Virtuoso и DBpedia в качестве конечной точки.
Моя цель - получить все фильмы, в которых актеров больше, чем среднее число актеров для всех фильмов.
I думал, что следующий запрос будет работать:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT
DISTINCT ?film
COUNT(?actor) AS ?numActors
WHERE{
?film rdf:type dbp:Film .
?film dbp:starring ?actor .
{
SELECT
AVG(?numActors) AS ?avgNumActors
WHERE{
SELECT
?Sfilm
COUNT(?Sactor) AS ?numActors
WHERE{
?Sfilm rdf:type dbp:Film .
?Sfilm dbp:starring ?Sactor
}
}
}
}
GROUP BY ?film
HAVING (COUNT(?actor) > ?avgNumActors)
LIMIT 20
, но я получаю следующую ошибку
Переменная? avgNumActors используется в наборе результатов вне агрегата и не упоминается в предложении GROUP BY
Что я делаю не так?