如果要查询分组的子结果集,可以使用子select查询语句对thisgroup进行子查询。
ThisGroup不是一个数据,仅仅只是子数据集,
必需用SELECT的FROM子句来访问
例如有列”证券”,”行业”,”涨幅(%)”的二维数组
t:= array(
("证券":"SH600028","行业":"采矿业","涨幅(%)":-1.01),
("证券":"SH600030","行业":"金融业","涨幅(%)":0.07),
("证券":"SH601166","行业":"金融业","涨幅(%)":-1.6),
("证券":"SH601211","行业":"金融业","涨幅(%)":0.29),
("证券":"SH601225","行业":"采矿业","涨幅(%)":-0.49),
("证券":"SH601658","行业":"金融业","涨幅(%)":-1.62),
("证券":"SH601668","行业":"建筑业","涨幅(%)":1.16));
return select ["行业"],maxof(["涨幅(%)"]) as "最大涨幅" from t group by ["行业"] end;
这种写法熟悉SQL的都可以很了解,但是如何访问在[“涨幅(%)”]的最大值发生时候的[“证券”]的值呢?
ThisGroup可以解决这个问题
return select ["行业"],mzf:=maxof(["涨幅(%)"]) as "最大涨幅",
vselect ["证券"] from thisgroup where ["涨幅(%)"]=mzf end as "最大涨幅券"
from t group by ["行业"] end;
当然用户也可以使用select * from ThisGroup end来得到分组的完全值
返回结果如下:
