count - SPARQL 查询和非重复计数

标签 count sparql

我有以下查询:

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),但收到错误消息 “Variable or "*"Expected ."有人能告诉我,如何做对吗?

最佳答案

如果您使用 Java 和 Jena 的 ARQ,则可以使用 ARQ's extensions for aggregates 。您的查询将类似于:

SELECT ?tag (count(distinct ?tag) as ?count)
WHERE {
    ?r ns9:taggedWithTag ?tagresource.
    ?tagresource ns9:name ?tag
}
LIMIT 5000

original SPARQL specification from 2008不包括聚合,但 the current version, 1.1, from 2013确实如此。

关于count - SPARQL 查询和非重复计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223472/

相关文章:

mysql - AS 不使用 COUNT(*) 和 UNION

java - 通过 Java 代码插入一些数据时,Sparql 查询不会更新

sparql - Marklogic - 通过管理控制台添加默认规则集

java - Jena 结果采用 UTF-8 格式

SPARQL 选择变量前缀 "?"和 "$"

mysql - 在 sql 中计数 - 两个表

Mysql只出现结果中计数3行的行

r - 计算每个类别列的出现次数

sql - 如何从 SQL 中的同一个表的各种连接中获取计数?

java - 如果我仅使用 Web 服务,如何实现 SPARQL 端点公共(public)