使用 SPARQL 在希腊度过夏天

Summer in Greece with SPARQL

我想提出一个问题,对于希腊的每个地区,都应该计算最好的沐浴水域(即显示完美质量的水域的数量)。所以(有序的)结果应该是这样的:

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 
...

我认为这每个区域单元的沐浴水域。但是,我不知道如何进行,你呢?

您需要做的就是更改您的 SELECT 子句以包含 COUNT,添加一个 GROUP BY 子句,该子句按自治市进行分组,最后添加一个 ORDER BY 子句确保最高分排在第一位。像这样:

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