(:
Aufgabe 1
for $c in //country[population = max(//country/population)]
return
let $c := //country[population = max(//country/population)]
return
| {$c/name} | {$c/population} |
for $c in //country
where $c/population = max(//country/population)
return
| {$c/name} | {$c/population} |
Aufgabe 2
for $o in //organization
let $p := sum($o/members/id(@country)/population)
order by $p descending
return
Aufgabe 3
let $dakar := number(//city[name="Dakar"]/longitude/text())
for $city in //city
where $city/longitude =
max(//city[longitude < $dakar]/longitude)
return $city
Aufgabe 4
for $w in //(river|sea|lake)
where $w/id(@country)/@car_code="R"
and count($w/id(@country)) = 2
return $w/name
//(river|sea|lake)
[id(@country)/@car_code="R"
and count(id(@country)) = 2]
/name
Aufgabe 5
for $c in //country[province]
let $p1 := $c/population,
$p2 := sum($c/province/population)
where abs($p2 - $p1) > 0.1 * $p1
return
Aufgabe 6
for $c1 in //country[encompassed/id(@continent)/name="Europe"],
$c2 in //country[encompassed/id(@continent)/name="Europe"]
let $seas1 := //sea[id(@country)/@car_code = $c1/@car_code],
$seas2 := //sea[id(@country)/@car_code = $c2/@car_code]
where $seas1 and $seas2
and $c1/@car_code != $c2/@car_code
and (every $s1 in $seas1 satisfies $s1/name = $seas2/name)
and (every $s2 in $seas2 satisfies $s2/name = $seas1/name)
return
{$c1/name}
{$c2/name}
{$seas1/name}
Aufgabe 7
let $caribbeanislandcountries :=
(
for $c in //sea[name="Caribbean Sea"]/id(@country)
where //island/id(@country)/@car_code = $c/@car_code
return $c
)
let $caribbeanislands :=
//island[id(@country)/@car_code = $caribbeanislandcountries/@car_code]
return
Aufgabe 8
for $c in //country
let $neighborspop :=
if ($c/border) then $c/border/id(@country)/population
else 0
return
Aufgabe 9
for $c in //country[count(.//city) > 3]
let $cities :=
for $cty in $c//city[population]
order by number($cty/population[1]) descending
return $cty
let $pop3 := $cities[1]/population[1] + $cities[2]/population[1] +
$cities[3]/population[1]
return
:)