SPARQL - 你如何使用计数?

use*_*616 4 count aggregate-functions sparql

我有这个问题

SELECT ?s WHERE {?a <http://xmlns.com/foaf/0.1/topic_interest> ?s}
Run Code Online (Sandbox Code Playgroud)

返回

aaa
aaa
aaa
bbb
bbb
ccc
Run Code Online (Sandbox Code Playgroud)

但是,我想将其显示为

aaa | 3
bbb | 2
ccc | 1
Run Code Online (Sandbox Code Playgroud)

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

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

这只是给了我3080行的行数.

你能告诉我怎么做对吗?

谢谢

Rob*_*obV 5

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

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

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

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