问题描述
SELECT ?mept ?uspt ?sapt ?rept ?sspt
WHERE {{SELECT (COUNT(?mep) AS ?mept)
WHERE {codo:MiddleEastCluster codo:hasMember ?mep.}}
{SELECT (COUNT(?usp) AS ?uspt)
WHERE {codo:USACluster codo:hasMember ?usp.}}
{SELECT (COUNT(?sap) AS ?sapt)
WHERE {codo:SouthAmericaCluster codo:hasMember ?sap.}}
{SELECT (COUNT(?rep) AS ?rept)
WHERE {codo:RestOfEuropeCluster codo:hasMember ?rep.}}
{SELECT (COUNT(?ssp) AS ?sspt)
WHERE {codo:SouthernStatesCluster codo:hasMember ?ssp.}}}
实际查询要大得多,在本示例中,我将其缩短了。我获取这些信息,然后将其放入Excel中以创建说明我们的数据的条形图和饼图。由于此查询(和其他查询)当前有效,因此它们将结果显示在这样的行中:
?mept ?uspt ?sapt ?rept ?sspt
515 7 5 22 481
我希望将其格式化为这样的列:
?mept 515
?uspt 7
?sapt 5
?rept 22
?sspt 481
这样可以更轻松地将数据直接复制和粘贴到Excel中。有使用SPARQL做到这一点的简单方法吗?我在网上找到了一些示例,这些示例可以做很多更复杂的事情,例如直接将数据从SPARQL输出到Excel。我不需要任何复杂的东西,只需一种简单的方法即可将输出格式化为列而不是行。
解决方法
根据评论中的建议,修改查询-
SELECT ?type
( COUNT ( ?member ) AS ?cnt)
WHERE
{ VALUES ( ?cluster ?type )
{ ( codo:MiddleEastCluster "mep" )
( codo:USACluster "usp" )
}
?cluster codo:hasMember ?member
}
GROUP BY ?cluster ?type