SPARQL - 你如何使用计数?

时间:2012-02-16 16:33:50

标签: count aggregate-functions sparql

我有这个查询

SELECT ?s WHERE {?a <http://xmlns.com/foaf/0.1/topic_interest> ?s}

返回

aaa
aaa
aaa
bbb
bbb
ccc

但是,我想将其显示为

aaa | 3
bbb | 2
ccc | 1

我正在使用dotnetrdf。这是我试过的

SELECT (COUNT(*) AS ?s) WHERE {?a <http://xmlns.com/foaf/0.1/topic_interest> ?s}

这只是给我的行数是3080。

你能告诉我如何做对吗?

由于

1 个答案:

答案 0 :(得分:5)

这是因为COUNT(*)只计算每个组的结果行

如果查询中没有GROUP BY子句,则所有结果都有一个隐式组,因此您只需获得行数。

如果您在查询中添加GROUP BY,如下例所示,您应该得到所需的结果:

SELECT (COUNT(*) AS ?count)
WHERE
{
  ?a <http://xmlns.com/foaf/0.1/topic_interest> ?s}
} GROUP BY ?s