2012-02-16 61 views
4

我有這個疑問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

複製在http://answers.semanticweb.com/questions/14601/sparql-how尚北道任您使用計數 – RobV 2012-02-16 17:09:04

回答

5

這是因爲COUNT(*)只計算結果行每個組

如果沒有GROUP BY子句中的查詢,則有所有結果的一個隱性組,因此你只得到行數。

如果通過將組添加到您的查詢,如下面的例子中,你應該得到的結果你想要的:

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