首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对SPARQL中的计数项进行分组,以积累低命中项?

问如何对SPARQL中的计数项进行分组,以积累低命中项?
EN

Stack Overflow用户
提问于 2019-02-18 14:37:43
回答 1查看 39关注 0票数 1

如何计算SPARQL中的分组条目,合并数量小于特定因素的条目?

例如,考虑一下诺贝尔奖数据。我可以通过查询获得所有姓氏的计数,例如

代码语言:javascript
复制
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name (count(*) as ?count) WHERE {
  ?id foaf:familyName ?name
}
GROUP BY $name
ORDER BY DESC($count)

如何修改查询,使其只返回至少发生3次的姓氏,并将其他名称累加为其他名称。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-18 15:09:53

只需将您的SELECT包装到另一个。

查询

代码语言:javascript
复制
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?name_ (SUM(?count) AS ?count_) {
  {
    SELECT ?name (COUNT(*) AS ?count) { 
      ?id foaf:familyName ?name
    } GROUP BY ?name
  }
  BIND (IF(?count > 2, ?name, "Other") AS ?name_)
} GROUP BY ?name_ ORDER BY DESC(IF(?name_ = "Other", -1 , ?count_))

结果

代码语言:javascript
复制
   name_       count_  
 ----------- --------- 
   Smith         5     
   Fischer       4     
   Wilson        4     
   Lee           3     
   Lewis         3     
   Müller        3     
   Other       878  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54749606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档