字段的统计

发送反馈


data 及其子资源提供了对数据的查询和操作的功能,本文的例子将介绍对数据集中的字段进行统计的过程。

数据集中字段的统计通过对 statistic 资源执行 GET 请求来进行,请参见 statistic 资源页面

本例对 World 数据源中的 Countries 数据集进行统计,Countries 数据集中有 POP_1994 字段,本例对该字段进行统计,获取 1994 年的世界人口情况。通过对如下 URI 执行不同的 GET 请求来实现:

http://localhost:8090/iserver/services/components-rest/rest/data/datasources/name/World/datasets/name/Countries/fields/POP_1994/{statisticMode}.json

URI 中,不同的 {statisticMode}表示不同的统计内容,获取最大值用 MAX,和用 SUM,平均值用 AVERAGE。

示例代码如下:

//统计 1994 年的世界人口

function FieldStatistic()

{

        var commit=getcommit();

        var baseuri="http://localhost:8090/iserver/services/components-rest/rest/data/datasources/name/World/datasets/name/Countries/fields/POP_1994";

        //获取数据集中该字段的最大值。

        commit.open("GET",encodeURI(baseuri+"/MAX.json"),false,"","");

        commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

        commit.send(null);

        //解析从服务器端返回的 json 字符串,解析为一个 JavaScript 对象。

        var response = json_parse(commit.responseText, null);  

        var max=response.result;

        //获取数据集中该字段的和。

        commit.open("GET",encodeURI(baseuri+"/SUM.json"),false,"","");

        commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

        commit.send(null);

        //解析从服务器端返回的 json 字符串,解析为一个 JavaScript 对象。

        response = json_parse(commit.responseText, null);  

        var sum=response.result;

        //获取数据集中该字段的平均值。

        commit.open("GET",encodeURI(baseuri+"/AVERAGE.json"),false,"","");

        commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

        commit.send(null);

        //解析从服务器端返回的 json 字符串,解析为一个 JavaScript 对象。

        response = json_parse(commit.responseText, null);  

        var average=response.result;

        var str="1994年,全世界人口共有"+sum+"人。其中,最多的国家有"+max+"人,世界平均人口为"+average+"人。";

        //获取用作显示的 Div 容器。

        var container = document.getElementById('container');

        container.innerHTML+='<p>'+str+'</p>';

}

统计结果为: