Foxtable(狐表)用户栏目专家坐堂 → [求助][讨论]两个不同分组(类似分组)的统计能放在一个统计表里吗?


  共有2452人关注过本帖树形打印复制链接

主题:[求助][讨论]两个不同分组(类似分组)的统计能放在一个统计表里吗?

帅哥哟,离线,有人找我吗?
jjjeyes
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助][讨论]两个不同分组(类似分组)的统计能放在一个统计表里吗?  发帖心情 Post By:2018/1/10 9:48:00 [只看该作者]

有一个数据表,需要通过两个分组(性别、年级编号)求下对应分组的人数、身高平均数、身高标准差、身高指标和
例子如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip

代码如下:
Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "优秀人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "良好人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "及格人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "不及格人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "优秀" & "'")
r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "良好" & "'")
r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "及格" & "'")
r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "不及格" & "'")  
 If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
Next
MainTable = t

以上代码会得到下图

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

不过,现在还需要另外求得只用一个分组(年级编号)放在下面,如下图:


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

求解,如何修改以上代码!!!

[此贴子已经被作者于2018/1/10 9:53:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/10 9:57:00 [只看该作者]

Dim g As New GroupTableBuilder("单项指标统计表", DataTables("评价结果"))
g.Groups.AddDef("性别")
g.Groups.AddDef("年级编号")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "优秀人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "良好人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "及格人数")
g.Totals.AddDef("年级编号", AggregateEnum.Count, "不及格人数")
g.Totals.AddDef("身高", AggregateEnum.Average, "身高平均数")
g.Decimals = 2
g.Build()
Dim t As Table = Tables("单项指标统计表")
For Each r As Row In t.Rows
    r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "优秀" & "'")
    r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "良好" & "'")
    r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "及格" & "'")
    r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & r("年级编号") & "' And 性别 = '" & r("性别") & "' And 总分等级 = '" & "不及格" & "'")
    If r("性别") = "1" Then
        r("性别") = "男"
    Else
        r("性别") = "女"
    End If
Next
For Each fz As String In DataTables("评价结果").GetValues("年级编号")
    Dim r = t.addnew
    r("年级编号") = fz
    r("人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & fz & "'")
    r("优秀人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & fz & "' And 总分等级 = '" & "优秀" & "'")
    r("良好人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & fz & "' And 总分等级 = '" & "良好" & "'")
    r("及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & fz & "' And 总分等级 = '" & "及格" & "'")
    r("不及格人数") = DataTables("评价结果").Compute("count(年级编号)", "年级编号 = '" & fz & "' And 总分等级 = '" & "不及格" & "'")
Next
MainTable = t

 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2018/1/10 9:59:00 [只看该作者]

感谢您的秒回!!!

 回到顶部