query-74bd6f153acc99e7455c2bbc80d512a9
ORDER y LIMITRegresamos a nuestro programa establecido de más características SPARQL. Hasta ahora, solo hemos tenido consultas en las que estábamos interesados en todos los resultados. Pero es muy común que solo nos interesen algunos pocos resultados: los que son más extremos de alguna manera: la población más antigua, la más joven, la más antigua, la más alta, el punto de fusión más bajo, la mayoría de los niños, la mayoría de los materiales utilizados, etc. El factor común aquí es que los resultados están "clasificados" de alguna manera, y luego nos preocupamos por los primeros resultados (aquellos con la mejor clasificación). . LIMIT y ORDER BY (después de las llaves, ¡no adentro!): WHERE {} Esto se controla mediante dos cláusulas, que se agregan al bloque ). algo es equivalente a solo ASC(algo) 'desc' ' 'finalizando). (Si no especifica ninguno de los dos, el valor predeterminado es orden ascendente, por lo que final o 'asc' para especificar el orden de clasificación (DESC() o ASC()), pero veremos algunos otros tipos más adelante. Esta expresión también puede incluirse en ?algo puede ser cualquier expresión, por ahora, el único tipo de expresión que conocemos son variables simples ( algo . algo ordena los resultados por ORDER BY algo solo devuelve un único resultado. LIMIT 1 limita la consulta a 10 resultados. LIMIT 10 es cualquier número. Por ejemplo, count resultados, donde count acorta la lista de resultados en LIMIT count puede acelerar significativamente la consulta, ya que WDQS puede detener la búsqueda de resultados tan pronto como se encuentre lo suficiente como para llenar el límite). LIMIT, pero no te importa cuál. En cualquier caso, agregando algún . En este caso, los resultados no se ordenan, por lo que no tiene ninguna garantía de qué resultados obtendrás. Lo cual está bien si sabes que solo hay un cierto número de resultados, o simplemente estás interesado en el resultado ORDER BY sin LIMIT(También puedes usar . LIMIT y ORDER BY ). Puedes comenzar por buscar países con su población y luego agregar las cláusulas de P:P1082, y la propiedad para la población es (Q3624078)sovereign state ¡Tiempo de ejercitar!. Intenta escribir una consulta que devuelva los diez países más poblados. (Un país es Aquí mi solución:
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?país ?paísLabel ?población
WHERE
{
?país wdt:P31/wdt:P279* wd:Q3624078;
wdt:P1082 ?población.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY DESC(?population)
LIMIT 10