在我之前的博客中,我介绍了如何在HANA中取消PIVOT数据,在这个博客中,我介绍了如何在HANA中透视数据。
在将MS-SQL过程转换为HANA过程时,企业管理软件下载,我们在一个select查询中遇到了PIVOT语句,不幸的是,hanasql脚本不支持PIVOT操作,因此我们不得不提出另一种方法。在本博客中,我将介绍两种在HANA中透视数据的方法
使用图形计算视图透视数据:
基表:这是一个PO标题表,其中包含员工ID、供应商ID和PO编号。
透视输出:在透视输出中,我们想知道每个员工下了多少采购订单,由于Excel是生成透视输出的最佳工具,什么叫云服务,所以我在Excel中生成了以下输出:
我们可以通过以下步骤使用图形计算视图获得相同的输出:
添加投影节点并在其中添加基表:
由于基表中有6个不同的员工,因此我们需要创建6个计算字段,一个对应的字段这些字段将成为我们的透视列标题。由于我们需要计算每个员工的订单数量,我们需要在每个计算字段中输入以下公式:
根据上述表达式,如果员工是"E1",则使E1(新计算字段)=1,否则E1=0。为所有其他字段编写相同的表达式,并将Emp\u ID值更改为E2,E3。。,等等
注意:您需要在投影节点上创建计算字段,而不是在聚合节点上,否则将不会发生对计算字段的聚合。
以下是创建所有计算字段后的输出:
将投影节点连接到聚合节点并激活视图:
枢轴输出:
在我们使用的上述用例中算作聚合函数,但是如果要使用Sum或Max作为聚合函数,企业应用开发,则只需在语义节点中对计算字段公式和聚合函数进行小的更改即可
Sum的更改:假设要检查员工放置的所有POs的总和,我知道这在逻辑上是没有意义的,但我想你不会介意我举个例子。
对所有计算字段进行上述更改。
输出:
对最大值进行更改:
公式与Sum相同,但需要更改语义节点中的聚合函数:
输出:
使用HANA SQLScript的透视数据:
有使用HANA SQLScript实现Pivot功能的多种方法
第一个选项:
Pivot with Count(如果需要Sum作为聚合函数,请用Sum替换Count)
粘贴SQL以备复制:
选择供应商id,Sum("E1")为"E1",返利是什么意思,Sum("E2")为"E2",Sum("E3")为"E3",Sum("E4")为"E4",Sum("E5")为"E5",总和("E6")为"E6"从(选择供应商标识,计数(NUM)为"E1",0为"E2",0为"E3",0为"E4",0为"E5",0为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组联合所有人选择供应商标识,0为"E1",计数(NUM)为"E2",0为"E3",0为"E4",0为"E5",0为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组联合所有人选择供应商id,0为"E1",0为"E2",计数(NUM)为"E3",0为"E4",0为"E5",0为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组联合所有人选择供应商id,0为"E1",0为"E2",0为"E3",计数(NUM)为"E4",0为"E5",0为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组联合所有人选择供应商id,0为"E1",0为"E2",0为"E3",0为"E4",计数(NUM)为"E5",0为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组联合所有人选择供应商标识,0为"E1",0为"E2",0为"E3",0为"E4",0为"E5",计数(NUM)为"E6"来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE"其中EMP\u按供应商ID分组)按供应商id分组按供应商id排序
第二个选项:
带计数的透视(如果需要Sum作为聚合函数,则用Num替换1)
SQL:
选择供应商id,Sum("E1")作为"E1",Sum("E2")作为"E2",Sum("E3")作为"E3",Sum("E4")作为"E4",Sum("E5")作为"E5",总和("E6")为"E6"从(选择"E1"时的供应商标识、案例(EMP标识)然后1其他0以"E1"结尾,"E2"时的案例(EMP\u ID)然后1其他0以"E2"结尾,大数据 学习,"E3"时的大小写(EMP\u ID)然后1其他0以"E3"结尾,"E4"时的情况(EMP_ID)然后1其他0以"E4"结尾,"E5"时的情况(EMP_ID)然后1其他0以"E5"结尾,"E6"时的情况(EMP_ID)然后1其他0以"E6"结尾来自"ABHISHEAGRAW"。"ABHISHEAGRAW::PIVOT\u INITIAL\u TABLE")按供应商标识分组按供应商标识订货