我有这个查询
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。
你能告诉我如何做对吗?
由于
答案 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