TSL语言基础 > SQL基础到TS-SQL > TS-SQL语法 > SELECT查询语句 > 聚集函数

AGGOF    

简述
返回给定表达式(自定义聚集函数)中所有值的填充利用回调函数计算聚集的值。
定义
AGGOf( name_str:TExpression; Expression:TExpression[;BoolConditionExp:TExpression[;N:Integer[;MovingFirst:Bool[;CacheId:String]]]]):any
参数
名称类型说明
name_strTExpression字符串表达式,扩展聚集函数的名称。
ExpressionTExpression任意类型表达式。参见多字段聚集。可在表达式前加关键字DISTINCT,表示不管该值出现了多少次,只使用每个值的唯一实例。不添加即统计所有。
BoolConditionExpTExpression布尔型表达式,如果存在该参数,则统计内容为该表达式为真的行,否则统计所有。
Ninteger整数,如果没有N参数,则统计对象为全部,否则统计对象为满足条件的从当前行起往前总共的N条记录, 如果为负数,则为从当前起往后总共|N|行。
MovingFirstBoolean布尔型,为真表示统计内容为最近N条内符合BoolConditionExp条件的,为假表示统计内容为最近N条符合BoolConditionExp条件的。省略的时候具体默认值由SelectOpt来决定,参见:SELECTOPT(Options)
CacheIdString字符串型,缓存标识串,参见:SQL时间序列统计缓存标志与性能加速
返回由扩展聚集函数的返回决定
  • 范例


    Table1 := Array(
    ('A':6,'B':20,'C':1),
    ('A':5,'B':20,'C':2),
    ('A':9,'B':2,'C':3),
    ('A':2,'B':20,'C':4),
    ('A':7,'B':18,'C':5));
    Return vSelect aggof('AggSumSample',['C']) from Table1 end; //返回结果15
    //自定义的AggSumSample聚集函数。
    Function AggSumSample(Flag,Value);
    begin
      if FLag=0 then
      begin
       SysParams['SumSample']:=0;
       return true;
      end
      else if Flag=1 then
      begin
       SysParams['SumSample']:=SysParams['SumSample']+Value;
       return true;
      end
      else
       return SysParams['SumSample'];
    end;
内容
相关