天软金融分析.NET函数大全 > TSL函数 > 基础函数 > 数组 > 表格显示

Pivot_table    

简述
分组、透视、汇总
1、vals 未指定时,代表对所有除index、columns 指定字段之外的所有字段计算
2、aggfunc 不同含义及设定方法:
  a、所有字段,统一函数 aggfunc := "avg"
   注:代表对vals中所有字段进行计算
  b、所有字段,多个函数 aggfunc := array("avg","max");
  c、指定字段,指定函数 aggfunc := array("fielda":"avg","filedb":("avg","max"));
   注:指定字段时,必须是vals的子集,否则报错。
 3、支持匿名函数、与函数指针,其中:
   a、匿名函数默认命名为"匿名"
   b、函数指针通过functioninfo得到函数名称
 4、aggfunc中支持
   a、所有 TS_SQL 聚合函数:e.g:"avg"(avgof),"sum"(sumof)
   b、内置函数:
    "_details": 分组详情
    "_first": 第一个
    "_last": 最后一个
   c、自定义函数中使用关键字thisgroup 得到当前分组数据。
5、index/columns中字段值含有nill等不可设为索引。
6、aggfuncnames:给aggfunc定义名称。
定义
Pivot_table(t:array;index;columns;vals: string | array;aggfunc:string;aggfuncnames:array):Array
参数
名称类型说明
tarray数组,数据表
index string | array 字符串或一维字符串数组, 行分类字段
colunms:字符串或一维字符串数组,列分类字段
vals string | array字符串或一维字符串数组, 值字段
aggfuncstringstring 值汇总函数
aggfuncnamesarray数组,自定义汇总函数名称对照表
返回Array数组,指定条件汇总后的数据透视表。
  • 范例

    //指定条件,行标为申万行业,列标为日期,按平均值汇总值为涨幅、振幅的的数据透视表数据
      stocks:=GetBKByDate("SH000010",20210525t);
      begt:= 20210515T;
      endt:= 20210525T;
      t:=select ['StockID'] as "代码",
           ["StockName"] as "名称",
           datetostr(['date']) as "日期",
           ["close"] as "收盘价",
           spec(specdate(stockzf3(),['date']),['StockID']) as "涨幅",
           spec(specdate(stockzdf3(),['date']),['StockID']) as "振幅",
           spec(base(10029),['StockID']) as "申万行业"
       from markettable datekey begt to endt of stocks end;
      index:= "申万行业";
      colunms:= "日期";
      vals:= array("涨幅","振幅");
      aggfunc:= "avg";
      return Pivot_table(t,index,colunms,vals,aggfunc);

    返回结果:
相关