I‘M ZYX 2024-04-09 17:09 采纳率: 0%
浏览 12

在SPARQL中,如何在group by分组之后,统计每组所含的记录数啊?

在SPARQL中,如何在group by分组之后,统计每组所含的记录数啊?

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-09 17:09
    关注

    引自免费微信小程序:皆我百晓生

    非常感谢您提出的问题。要解决这个问题,我们可以按照以下步骤进行操作。

    首先,在 SPARQL 查询时,我们可以使用 filter 函数对日期进行筛选,只保留指定年份的记录。

    假设我们有一个包含用户信息的表 users,其中 date 列是日期类型,我们可以使用 date 列作为 filter 项,例如:

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX dbr: <http://dbpedia.org/ontology/>
    PREFIX dbp: <http://dbpedia.org/resource/>
    
    SELECT ?this ( rdfs:label ?this) WHERE { 
        ?doc dbr:isPartOf ?dataset .
        ?dataset rdfs:label "Dataset" .
        date ?year . 
        ?interdisciplinary dbp:contains (?this, rdfs:label "Interdisciplinary") . 
        2INTERDisciplinary rdfs:labels (?word). 
        FILTER(?this = "<http://data.jcdoc.online/resource/knowledge/j57uVVv1dpXE18L9>") 
        FILTER(regex(?year,"2017")) 
        GROUP BY 2this ?other ?word 
        Execute 
        Save 
        Load 
        Clear 
        SPARQL | HTML5 table 
    this 
    other 
    word 
    callret- 
    3 
    http://data.jcdoc.online/resource/knowledge/j57uvvv1dpXE18L9 http://data.jcdoc.online/resource/23JDo57W62167DCk}
    

    这段查询会返回所有 Interdisciplinary 研究机构在 2017 年发布的论文的数量,并按每组的研究机构、研究论文数量和学科名称进行分组。

    如果你想要将这个结果保存为 SQL Server 表格的形式,可以使用 append 方法将其添加到数据库中:

    INSERT INTO users (
        date,
        interdisciplinary,
        word_count,
        callret-3
    )
    VALUES (?, ?, ?, ?, ?)
    

    如果你想要在 SPARQL 中使用 SPARQL 插入功能,并使用 group by 进行分组,可以参考 SPARQL 插入文档:https://www.w3.org/TR/sparql-endpoints/4.1/sparql-update.html

    最后,如果你想使用 callret-3 来替代特定的计算函数,例如 count(计数),只需要将括号内的数字替换为你想要的计算函数即可。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月9日