年にグループ化して数えるクエリがあります。いくつかの年では、カウントする項目がなく、結果が得られません。そのような年については、SPARQL がカウント 0 を返すようにしたいと考えています。
私はウィキデータ クエリ サービスhttps://query.wikidata.orgを使用しています。現在の解決策は、一連の値と実際のクエリとの結合を作成することです。私には少しぎこちなく見えます。より良い方法はありますか?
#defaultView:BarChart
select ?year ?number_of_pages ?work_label where {
{
select ?year (sample(?pages) as ?number_of_pages) ?work_label
where {
{
select * where {
values (?year ?pages ?work_label) {
("2000" "0"^^xsd:integer "_")
("2001" "0"^^xsd:integer "_")
("2002" "0"^^xsd:integer "_")
("2003" "0"^^xsd:integer "_")
("2004" "0"^^xsd:integer "_")
("2005" "0"^^xsd:integer "_")
("2006" "0"^^xsd:integer "_")
("2007" "0"^^xsd:integer "_")
("2008" "0"^^xsd:integer "_")
("2009" "0"^^xsd:integer "_")
("2010" "0"^^xsd:integer "_")
("2011" "0"^^xsd:integer "_")
("2012" "0"^^xsd:integer "_")
("2013" "0"^^xsd:integer "_")
("2014" "0"^^xsd:integer "_")
("2015" "0"^^xsd:integer "_")
("2016" "0"^^xsd:integer "_")
}
}
}
union {
?work wdt:P50 wd:Q18921408 .
?work wdt:P1104 ?pages .
?work wdt:P577 ?date .
?work rdfs:label ?long_work_label . filter(lang(?long_work_label) = 'en')
bind(substr(?long_work_label, 1, 20) as ?work_label)
bind(str(year(?date)) as ?year)
}
}
group by ?year ?work ?work_label
order by ?year
}
}