[英]GROUP and COUNT in SPARQL
我正在使用WikiData SPARQL端點搜索兩個實體:博物館( wd:Q33506
)和圖書館( wd:Q7075
),它們具有instagram和twitter帳戶,以及它們來自哪個國家/地區。 我試圖對它們進行計數並按國家/地區分組。
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
主要錯誤是:
查詢格式錯誤:錯誤的匯總
從11.4總投影限制 :
在使用聚合的查詢級別中,只能投影由聚合和常量組成的表達式,只有一個例外。 當給
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)
我還添加了UNION
, DISTINCT
並在投影中將?country
替換為?item
。
請注意,同時擁有Instagram和Twitter帳戶的圖書館和博物館都將計入在內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.