2017-08-24 94 views
2

我用这个查询在https://query.wikidata.org/ -维基数据:SPARQL,足球运动员的比赛数量

SELECT ?p ?pLabel (?oc as ?OC) (?sp as ?SP) WHERE { 

?p wdt:P106/wdt:P279* wd:Q937857. # Soccer player 

SERVICE wikibase:label {bd:serviceParam wikibase:language "en" . } 

{ SELECT ?p (count(?oc) AS ?oc) WHERE { ?p wdt:P106 wd:Q937857; p:P106 ?oc. } GROUP BY ?p HAVING(?oc<3)} # Occupation 

{ SELECT ?p (count(?sp) AS ?sp) WHERE { ?p wdt:P106 wd:Q937857; p:P54 ?sp. } GROUP BY ?p HAVING(?sp>5)} # Sport Teams                         
} 

LIMIT 10 

Query link

已经用Google搜索小时后找到一种方法来概括游戏的数量(P1350)所有球队的每名球员(P54),我决定寻求一些帮助。

回答

3
SELECT ?player ?playerLabel ?totalMatchesPlayed { 

SERVICE wikibase:label {bd:serviceParam wikibase:language "en" . } 

{ 
    SELECT ?player (sum(?matchesPlayed) as ?totalMatchesPlayed) WHERE { 
    ?player wdt:P106/wdt:P279* wd:Q937857 . 
    ?player p:P54/pq:P1350 ?matchesPlayed. 
    } 
    GROUP BY ?player 
    LIMIT 100 
} 

} 
+0

它的工作原理!非常感谢你。 –