Sparql:如何GROUP BY多列

sap*_*007 13 group-by sparql

在SPARQL中,我们可以通过gollowing语法按行对行进行分组:

GROUP BY ?colName
Run Code Online (Sandbox Code Playgroud)

我们可以分组超过1列,例如:

GROUP BY (?colName1 + ?colName2 + ?colName3) 
Run Code Online (Sandbox Code Playgroud)

假设一个查询如下:

Select ?a ?b ?c (MIN(?y) AS ?d)
Where {
....
}
GROUP BY (?a + ?b + ?c)
Run Code Online (Sandbox Code Playgroud)

但是这个查询不起作用.

Ben*_*jen 8

你可以GROUP BY通过列出它们之间的空格来多个变量(而不是列):

GROUP BY ?a ?b ?c
Run Code Online (Sandbox Code Playgroud)


And*_*dyS 6

除了Ben Companjen的回答

GROUP BY ?a ?b ?c
Run Code Online (Sandbox Code Playgroud)

您需要修复SELECT行,因为您无法在不明确说明的情况下传递不确定的非组键,例如

SELECT (sample(?a) as ?A) (sample(?b) as ?B) (sample(?c) as ?C) (min(?y) as ?d)
Run Code Online (Sandbox Code Playgroud)


小智 -6

你有没有尝试过类似的东西

SELECT ?a+b+?c, (MIN(?y) AS ?d) 其中 { .... } GROUP BY (?a+?b+?c)

这在 SQL Server 中工作得很好