协助 MongoDB 计算之交叉汇总
交叉汇总是数据统计中一种实用的分类统计计算。交叉汇总分析,又称列联表分析,是通过分析两个或两个以上变量之间的联合分布特征,来了解这些变量之间相互影响关系的一种统计分析技术。一般情况下,我们将某一变量分组后作为行,用其它变量或变量的组合作为列,形成数据库表进行统计分析。例如下面的表结构: 成绩 学校 学科 1 2 3 4 5 A Sub1 人数 人数 … … … Sub2 人数 … B Sub1 人数 Sub2 人数 如果将学科、成绩合并,则可进一步演化为: 学科 - 成绩 学校 sub1-1 sub1-2 … sub1-5 sub2-1 … A 人数 … B 人数 用 MongoDB 能够比较清晰、自然地存储类似的数据,但要实现交叉汇总却比较困难。如果将数据取出,用 Java 等其它高级语言来汇总的话,也相当复杂。对于这种情况,我们可以利用集算器 SPL 语言辅助 MongoDB,完美实现交叉汇总的功能,下面用例子说明。 Student集合记录了学校、学生名称、学科及成绩,样例数据如下: db.student.insert ({school:'school1', sname : 'Sean' , sub1: 4, sub2 :5}) db.student.insert ({school:'school1', sname : 'chris' , sub1: 4, sub2 :3})