我使用SAP-HANA数据库。我有一个简单的2列表,其列是数字,名称,面条,鱼。行是这些:
number name noodles fish
1 tom x
1 tom x
1 jack
2 jack x
我想通过id对行进行分组,并将名称连接到一个字段中,从而获得:
number name noodles fish
1 tom x x
2 jack x
请告诉我如何在sap-hana中执行此操作?提前谢谢。
答案 0 :(得分:1)
嗯,你并没有真正连接名称,而是保持相同的名称(如果你也将名称连接起来,你的结果会得到类似jackjack的东西)。我想你的x表示某种ABAP风格的标志。
在任何情况下,您都可以通过分组来完成此操作。这是完全非HANA的事情(您可以对任何数据库使用相同的基本SQL)。您可以针对多个列进行分组。您要选择的所有其他列必须在聚合表达式中使用(例如,SUM,MAX,COUNT等)。
为了从你的问题得到输出,我写了下面的代码:
SELECT "ID", "NAME", MAX("FISH"), MAX("NOODLES")
FROM #TEST GROUP BY "ID", "NAME";
并获得与您相同的输出。我使用MAX函数基于以下假设:如果该列中的“连接”(聚合)行中有任何X,则需要获取X.如果所有“连接”行中都有空格,则不会得到空格。