Je voudrais connaître la population la plus récente des communes suisses avec l'aide de Wikidata. Pour obtenir ceux qui ont le rang préféré serait facile mais pas utile. J'ai la requête SPARQL suivante mais maintenant j'ai le problème de projeter le nombre réel de population ?popWD
pour la date la plus tardive (et pas seulement la date) hors de l'agrégation. Si je comprends bien, vous ne pouvez pas projeter des valeurs qui ne sont pas agrégées.Comment projeter des variables supplémentaires à partir des agrégats 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
Je résolu le problème avec une sous-sélection qui fonctionne, mais semble un peu compliqué et assez lent:
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
}
}
Y at-il des solutions plus rapides et plus? Le code snippets ci-dessus devrait à la fois le travail à: https://query.wikidata.org
Merci pour la deuxième variante avec la structure du filtre. Cette solution semble être la même que celle présentée [ici] (https://stackoverflow.com/questions/36181713/sparql-query-to-get-only-results-with-the-most-recent-date#36183745) que je suis maintenant en mesure de mettre en œuvre avec votre aide. – Belda