Tri*_*ker 2 grouping count sparql wikidata
我正在使用WikiData SPARQL端点搜索两个实体:具有instagram和twitter帐户以及它们来自哪个国家的博物馆(wd:Q33506)和图书馆(wd:Q7075)。我试图对它们进行计数并按国家/地区分组。
SELECT ?item ?instagram ?twitter ?countryLabel (COUNT(?country) AS ?ccount) WHERE {
{ ?item (wdt:P31/wdt:P279*) wd:Q33506. }
{ ?item (wdt:P31/wdt:P279*) wd:Q7075. }
?item wdt:P2003 ?instagram.
?item wdt:P2002 ?twitter.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?item wdt:P17 ?country. }
}
GROUP BY ?country
ORDER BY ?ccount
Run Code Online (Sandbox Code Playgroud)
主要错误是:
查询格式错误:错误的汇总
在使用聚合的查询级别中,只能投影由聚合和常量组成的表达式,只有一个例外。当
GROUP BY给出仅由一个变量组成的一个或多个简单表达式时,这些变量可以从级别投影。
因此,您的查询应为:
SELECT ?countryLabel (COUNT(DISTINCT ?item) AS ?ccount) WHERE {
{ ?item wdt:P31/wdt:P279* wd:Q33506. }
UNION
{ ?item wdt:P31/wdt:P279* wd:Q7075. }
?item wdt:P2003 ?instagram.
?item wdt:P2002 ?twitter.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?item wdt:P17 ?country. }
}
GROUP BY ?countryLabel ORDER BY DESC(?ccount)
Run Code Online (Sandbox Code Playgroud)
我还添加了UNION,DISTINCT并在投影中替换?country为?item。
请注意,同时拥有Instagram和Twitter帐户的图书馆和博物馆都将计入在内。
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |