Analyze Data

The following queries use the Mondial database, a data set compiled by the Universität Göttingen.

For each country, list the 3 cities with the highest population

(:  This script accesses the mondial database, which can be
    found at http://dbis.informatik.uni-goettingen.de/Mondial/ :)
for $country in /mondial/country
let $cities := 
    (for $city in $country//city[population] 
    order by xs:integer($city/population[1]) descending 
    return $city)
order by $country/name
return
    <country name="{$country/name}">
    {
        subsequence($cities, 1, 3)
    }
    </country>

Find all Spanish provinces and their cities

xquery version "1.0";

let $country := /mondial/country[name = 'Spain']
for $province in $country/province
order by $province/name
return
    <province>
        {$province/name}
		{
			for $city in $country//city[@province=$province/@id]
			order by $city/name
			return $city
		}
	</province>
            

Find the countries with the largest Roman Catholic population

for $country in /mondial/country
where some $r in $country/religions satisfies $r = "Roman Catholic"
order by $country/religions[. = "Roman Catholic"]/@percentage cast as xs:double descending
return
  <country name="{$country/name}">
    {$country/religions}
  </country>