夏季在希腊SPARQL(Summer in Greece with SPARQL)

2019-09-29 17:25发布

我想提出一个查询,这对于希腊的各个地区,应算最好的洗浴水(即水,显示完美品质的数量)。 所以(有序)的结果应该是这样的:

Crete  "2048"^^<http://www.w3.org/2001/XMLSchema#integer>        # Crete has 2048 perfect bathing waters
Santorini  "1024"^^<http://www.w3.org/2001/XMLSchema#integer> 
..

对我来说,问题是如何得到相关的区域沐浴水域。 然后,我应该担心如何收集不同的总和。 我知道如何订购。 让我们假设?concie_0确定了质量; 如果> 40,那么它是完美的品质。 这是我到目前为止有:

SELECT ?municipality ?bw
WHERE { 
  ?regional_unit geo:έχει_επίσημο_όνομα "ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΝΟΤΗΤΑ ΗΡΑΚΛΕΙΟΥ" .
  ?municipality geo:ανήκει_σε ?regional_unit .
  ?municipality geo:έχει_γεωμετρία ?geometry .

  ?bw geos:hasGeometry ?bw_geo .
  ?bw_geo geos:asWKT ?bw_geo_wkt .
  FILTER(strdf:within(?geometry, ?bw_geo_wkt)) .
  ?bw unt:has_concie_0 ?concie_0 .
  FILTER(?concie_0 > 40)
}
LIMIT 15

这使:

municipality                                bw
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/340
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/456
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/972
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/1041
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/1365
http://geo.linkedopendata.gr/gag/id/9302    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/1849
http://geo.linkedopendata.gr/gag/id/9306    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/340
http://geo.linkedopendata.gr/gag/id/9306    http://data.linkedeodata.eu/poiothta_ydatwn_kolymvhshs_2012/id/456 
...

我认为,这每区域单位的沐浴水域。 不过,我不知道如何着手,你呢?

Answer 1:

所有你需要做的是改变你的SELECT子句包括COUNT ,添加GROUP BY子句中每个城市的那组,最后一个ORDER BY ,以确保最高的分数是第一位的条款。 像这样:

SELECT ?municipality (COUNT(?bw) as ?bwCount)
WHERE { 
  .... 
}
GROUP BY ?municipality
ORDER BY DESC(?bwCount)


文章来源: Summer in Greece with SPARQL