簡體   English   中英

SPARQL中的GROUP和COUNT

[英]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)

試試吧!

我還添加了UNIONDISTINCT並在投影中將?country替換為?item

請注意,同時擁有Instagram和Twitter帳戶的圖書館和博物館將計入在內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM