如何在Wikidata SPARQL分组查询中筛选沿岸大城市数大于3的河流
Wikidata SPARQL 查询修改方案
你需要使用SPARQL的HAVING子句对聚合后的统计结果进行筛选,该子句需要放在GROUP BY语句之后、ORDER BY语句之前。
修改后的完整查询语句如下:
# 流经3个以上大型城市的河流查询 SELECT ?river ?riverLabel (COUNT(?city) AS ?citycount) WHERE { ?river wdt:P31 wd:Q4022. # 限定实例为河流 ?city wdt:P31 wd:Q1549591. # 限定实例为大型城市 ?city wdt:P206 ?river. # 限定城市位于或紧邻对应河流 SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]".} } GROUP BY ?river ?riverLabel HAVING (?citycount > 3) # 筛选沿岸大城市数量大于3的河流 ORDER BY DESC(?citycount) LIMIT 100
说明:WHERE子句仅能对分组前的原始数据做过滤,聚合统计后的结果筛选必须使用HAVING子句实现。
内容的提问来源于stack exchange,提问作者cknoll
相关产品推荐
相关产品推荐

