max - SPARQL选择计数器的最大值

标签 max sparql counter

我是 sparql 的新手,试图找出选择另一个查询的计数器最大值的最佳方法,而无需创建新表,仅使用子查询。我正在处理一个相对较小的数据集,因此计算时间不是问题。

SELECT ?p1 ?c1  (MAX(?cnt1) AS ?maxc)
WHERE{
{
SELECT ?p1 ?c1 (COUNT(?s1) AS ?cnt1)
WHERE {
    ?s1 ?p1 ?o1;
          a ?c1.
     }Group by ?p1 ?c1
#ORDER BY ?p1 DESC(?cnt1)
}

}GROUP BY ?p1

所以我期望为 ?p1 的每个值获取一行,最大 ?cnt1 适合 ?c1

我很确定这是这样做的方法,但由于某种原因它会导致我的端点崩溃。内部查询工作正常,并且按 ?p1 和 进行分组时 ?c1 它只生成一行并且最大值为空。

谢谢, 奥姆里

最佳答案

除非您同时按 ?p1 和 ?c1 进行分组,否则您的查询将会崩溃。 分组时,出现在 SELECT 中的所有变量必须出现在 GROUP 或聚合函数(MAX、COUNT 等)中。

以下查询将为您提供计数器的最大值,但没有相应的 ?p1 ?c1。要拥有这些,您可能需要另一个带有 FILTER 的子查询...

SELECT (MAX(?cnt1) AS ?maxc)
WHERE{
{
SELECT ?p1 ?c1 (COUNT(?s1) AS ?cnt1)
WHERE {
    ?s1 ?p1 ?o1;
          a ?c1.
     }Group by ?p1 ?c1
}
}

关于max - SPARQL选择计数器的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912861/

相关文章:

mysql - 在 SQL 中搜索 max 并与其他 min 进行比较

sparql - 使用 SPARQL 查询按 GDP 重新创建维基百科州列表

hyperlink - 使用 DBpedia 获取 Wikipedia 页面的超链接

python - 如何将 N 添加到计数器的每个值? - Python

c# - 使用 Ford Fulkerson 确定足以求和的值的二分图中的最大流量

python - Pandas 应用使用最小/最大在可变滚动窗口上执行缓慢

c - 如何在 while 循环中找到最大值和最小值 - c

java - 如何在java中使用SPARQL从RDF文件中获取特定标签相关信息

java - 仅替换未替换的字符

javascript - jquery 计数器不起作用