zoukankan      html  css  js  c++  java
  • Play Modules Morphia 1.2.9a 之 Aggregation and Group aggregation

    聚合 和 分组聚合:

    PlayMorphia 它提供了基于开发人员models的友好接口

    设想你定义了一个model。class Sales: 


    @Entity public class Sales extends Model {
        public String employeeId;
        public String department;
        public String region;
        public int amount;
    }


    聚合:如今你能够在Sales模型上做聚合操作,以下是一些详细演示样例:

    long total = Sales.count(); // also Sales.q().count();
    long cntIT = Sales.q().filter("department", "IT").count();
    long cntAU = Sales.q().filter("region", "AU").count();
    long cntAuIt = Sales.find("region, department", "AU", "IT").count();


    求和:

    long sum = Sales._sum("amount"); // also Sales.q().sum("amount");
    long sumIT = Sales.find("department", "IT").sum("amount");
    long sumAU = Sales.find("region", "AU").sum("amount");
    long sumAuIt = Sales.find("region department", "AU", "IT").sum("amount");

    最大值:

    long max = Sales._max("amount"); // also Sales.q().max("amount");
    long maxIT = Sales.find("department", "IT").max("amount");
    long maxAU = Sales.find("region", "AU").max("amount");
    long maxAuIt = Sales.find("region department", "AU", "IT").max("amount");

    最小值:

    long min = Sales._min("amount"); // also Sales.q().min("amount");
    long minIT = Sales.find("department", "IT").min("amount");
    long minAU = Sales.find("region", "AU").min("amount");
    long minAuIt = Sales.find("region department", "AU", "IT").min("amount");

    分组聚合:

    每个聚合都会相应一个分组聚合的接口,就像SQL中的group by语句


    分组计数:

    // group by region
    AggregationResult byRegion = Sales.groupCount("region");
    System.out.println("AU count: " + byRegion.get("region", "AU");
    // group by department
    AggregationResult byDep = Sales.groupCount("department");
    System.out.println("IT count: " + byDep.get("department", "IT");
    // group by region and department
    AggregationResult byRegionDep = Sales.groupCount("region, department");
    System.out.println("IT count: " + byRegionDep.get("department, region", "IT", "AU");


    分组求和:

    // group by region
    AggregationResult byRegion = Sales.groupSum("region");
    System.out.println("AU sum: " + byRegion.get("region", "AU");
    // group by department
    AggregationResult byDep = Sales.groupSum("department");
    System.out.println("IT sum: " + byDep.get("department", "IT");
    // group by region and department
    AggregationResult byRegionDep = Sales.groupSum("region, department");
    System.out.println("IT sum: " + byRegionDep.get("department, region", "IT", "AU");

    分组求最大值:

    // group by region
    AggregationResult byRegion = Sales.groupMax("region");
    System.out.println("AU max: " + byRegion.get("region", "AU");
    // group by department
    AggregationResult byDep = Sales.groupMax("department");
    System.out.println("IT max: " + byDep.get("department", "IT");
    // group by region and department
    AggregationResult byRegionDep = Sales.groupMax("region, department");
    System.out.println("IT max: " + byRegionDep.get("department, region", "IT", "AU");


    分组求最小值:

    // group by region
    AggregationResult byRegion = Sales.groupMin("region");
    System.out.println("AU min: " + byRegion.get("region", "AU");
    // group by department
    AggregationResult byDep = Sales.groupMin("department");
    System.out.println("IT min: " + byDep.get("department", "IT");
    // group by region and department
    AggregationResult byRegionDep = Sales.groupMin("region, department");
    System.out.println("IT min: " + byRegionDep.get("department, region", "IT", "AU");
    


    原文链接:http://www.playframework.com/modules/morphia-1.2.9/statistics

  • 相关阅读:
    iPhone网络编程初体验
    va_list实现不定参数C函数
    iphone网络编程总结(链接)
    一周好文(4)
    10个迷惑新手的Cocoa&Objectivec开发问题
    Flash通过Action Script调用C++接口
    easyui表单对numberbox控件进行赋值需要注意
    asp.net生成缩略图及给原始图加水印
    用超链接在页面之间传值的注意事项(来自:http://www.souzz.net)
    超酷的分类导航代码
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4792910.html
Copyright © 2011-2022 走看看