2
我想借助维基数据了解最近的瑞士城市人口。要获得具有首选排名的人很容易,但没有帮助。我有以下的SPARQL查询,但现在我有问题投射实际人口数?popWD
为聚合的最新日期(不仅是日期)。据我所知,你不能投影未汇总的值。如何从SPARQL聚合项目中预测其他变量
SELECT ?wikiURI (max(?timeWDAll) AS ?timeWD) WHERE {
?wikiURI wdt:P31 wd:Q70208;
p:P1082 ?popWDStatement.
?popWDStatement pq:P585 ?timeWDAll;
ps:P1082 ?popWD.
}
GROUP BY ?wikiURI
我解决了一个子查询它的工作,但似乎有点复杂,相当慢的问题:
SELECT ?wikiURI ?timeWD ?popWD WHERE {
?wikiURI p:P1082 ?popWDStatement.
?popWDStatement ps:P1082 ?popWD;
pq:P585 ?timeWD.
{
SELECT ?wikiURI (max(?timeWDAll) AS ?timeWD) WHERE {
?wikiURI wdt:P31 wd:Q70208;
p:P1082 ?popWDStatement.
?popWDStatement pq:P585 ?timeWDAll.
}
GROUP BY ?wikiURI
}
}
是否有更好更快的解决方案?代码上面的片断应在两个工作:https://query.wikidata.org
感谢您对过滤器结构的第二个变体。这个解决方案似乎和[在这里]介绍的一样(https://stackoverflow.com/questions/36181713/sparql-query-to-get-only-results-with-the-most-recent-date#36183745 ),我现在可以在你的帮助下实施。 – Belda