在结果集上连接一列,例如 group_concat

Concatenate one column over a resultset like kind of group_concat

我目前正在编写 SPARQL 查询 (GraphDB) 并尝试连接一列的结果以避免出现“重复”的情况。

我当前的查询如下所示

SELECT ?label ?otaupdater
WHERE {
 ?charger rdf:type mymodel:SoftwarePackage. 
 ?charger mymodel:isCompatibleWith ?target.
 ?target car:CarId <93718293>.
 ?charger rdfs:label ?label.
 ?otaupdater rdf:type mymodel:OTAUpdater.
 ?charger mymodel:isCompatibleWith ?otaupdater.
}

这给了我一个像

这样的结果集
label otaupdater
Chargie_One 123
Chargie_One 456
Chargie_Two 123

我尝试在命令 group_concat 中工作,但到目前为止我只得到了

SELECT (group_concat(?otaupdater; separator=", ") AS ?otaupdaters) where { ... }

但这只是 returns 一个构建列表中的所有 otaupdater。

我想要实现的是这样的:

label otaupdaters
Chargie_One 123, 456
Chargie_Two 123

@UninformedUser的评论 引出答案:

SELECT ?charger ?label ?target (group_concat(?otaupdater; separator=", ") AS ?otaupdaters)
WHERE {
 ?charger rdf:type mymodel:SoftwarePackage. 
 ?charger mymodel:isCompatibleWith ?target.
 ?target car:CarId <93718293>.
 ?charger rdfs:label ?label.
 ?otaupdater rdf:type mymodel:OTAUpdater.
 ?charger mymodel:isCompatibleWith ?otaupdater.
}
GROUP BY ?charger ?label ?target