Excel 在列而不是行中显示SPARQL输出

Excel 在列而不是行中显示SPARQL输出,excel,format,output,sparql,Excel,Format,Output,Sparql,我有几个SPARQL查询,如下所示: 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 (

我有几个SPARQL查询,如下所示:

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
我更喜欢将其格式化为如下列:

?mept  ?uspt  ?sapt  ?rept  ?sspt

 515    7       5     22      481
?mept 515
?uspt 7
?sapt 5
?rept 22
?sspt 481

这样可以更容易地将数据直接复制和粘贴到Excel中。有没有一种简单的方法可以使用SPARQL实现这一点?我在网上找到了一些例子,它们可以做更复杂的事情,比如直接将数据从SPARQL输出到Excel。我不需要那么复杂的东西,只需要一种将输出格式化为列而不是行的简单方法。

正如注释中所建议的,修订后的查询--


这确实是可能的。只需在子查询之间使用一个
UNION
,并在所有子查询中重用变量名,即它应该是这样的:
SELECT?type?cnt其中{SELECT(COUNT(?mep)AS?cnt)(“mep”AS?type)其中{codo:middleastcluster codo:hassmember?mep}}UNION{SELECT(COUNT(?usp)AS?cnt)(“usp”AS?type)其中{codo:USACluster codo:hassmember?usp}}}
-它确实没有经过测试。但是,我认为您的查询可以更加紧凑:
SELECT?type(COUNT(?member)AS?cnt)其中{VALUES(?cluster?type){(codo:MiddleEastCluster)type)“mep”)(codo:USACluster“usp”)}?群集codo:hasMember?member}GROUP BY?cluster?type
-不需要所有的子查询,只需在
值中添加更多元组即可。我知道有更好的方法可以重用这些名称,但由于某些原因我没有得到它。你帮了大忙,我真的很感激。我正在自己工作,而且对SPARQL非常陌生,所以你的反馈令人难以置信有用。