在结果集上连接一列,例如 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
我目前正在编写 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