Вопрос

У меня следующий запрос:

SELECT ?tag WHERE {
  ?r ns9:taggedWithTag ?tagresource.
  ?tagresource ns9:name ?tag
}
LIMIT 5000

и результаты:

abc
abc
abc
abc
abc
abc
abc
abd
ads
anb

Я хочу получить что-то вроде:

tag | count
-----------------
abc     7
abd     1
ads     1
anb     1

Я пробовал его с count (*) и count (? tag) , но затем я получаю сообщение об ошибке " Переменная или " * & Quot; ожидается. Может кто-нибудь сказать мне, как это сделать правильно?

Это было полезно?

Другие советы

Использование COUNT (), MIN (), MAX (), SUM (), AVG () с GROUP BY позволяет получить итоговые значения для групп троек. Обратите внимание, что эти шаблоны могут быть специфичными для SPARQL 1.1.

Например, этот может суммировать значение? для каждой категории?

SELECT ?category (SUM(?value) as ?valueSum)
WHERE
{
  ?s ?category ?value .
}
GROUP BY ?category

Здесь можно сосчитать количество использований предиката? p,

SELECT ?p (COUNT(?p) as ?pCount)
WHERE
{
  ?s ?p ?o .
}
GROUP BY ?p

Эти примеры основаны на материалах Bob DuCharme (2011), "Learning SPARQL". O'Reilly Media, Севастополь, Калифорния, США; см. http://www.learningsparql.com/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top