Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > SQL统计功能的Java实现
【标  题】:SQL统计功能的Java实现
【关键字】:SQL,Java
【来  源】:http://blog.csdn.net/zhanghandong/archive/2007/01/13/1481685.aspx

SQL统计功能的Java实现

Your Ad Here

常常碰到类似于SQL中的分组,排序和统计的实现,实现的方法很多,通常是将待统计的数据放入数据集合(array,list,map,etc.),然后根据条件进行分组(group by),或者需要排序(order by),再进行统计(sum,count,average,etc.)

 

1.声明数据集合

Collection<T> records

 

2.根据条件进行分组--格子法:

例1:将学生成绩按班级分组,如有12个班级,建立12个格子,每个班的数据装入相应的班级格子

T[] arr=new T[12]

Map<String,T> map=new HashMap<String,T>(12)

 

例2:将全年销售额按周进行分组,一周一个格子,每周的数据放入相应的格子

a.需要多少个格子

int cnt=divideAndCeil(365,7)=53,建立53个格子

T[] arr=new T[cnt]

 

b.要放入哪个格子

long interval=7*DateUtil.lDay;

int index=divideAndFloor(curDate.getTime()-beginDate.getTime(),interval)

 

注:

divideAndCeil(a,b) => ceil(a/b)

divideAndFloor(a,b) => floor(a/b)

 

注:这些是比较简单的例子,实际情况可能比这复杂得多,分组也可能有好几级,这就需要实现一个专门的函数来得到相应的索引,以便进行正确的分组插入

 

3.排序

最简单的实现方法是Java的Compare接口,

 

4.统计

建立一个与分组个数相同格子数的集合,每个格子中放计数器,总和,平均值等统计值

Class Counter<T>{

    T sum

    T count;

    T average;

    ...

当前Java软件开发中几种认识误区:【上一篇】
getsockopt 和 setsockopt:【下一篇】
【相关文章】
  • 当前Java软件开发中几种认识误区
  • BP网络JAVA版
  • SUN JAVA SCJP 认证考试试题
  • 话说Java(5):庄子与Java中的面向对象思想
  • EJB3 Java 持久化API来标准化Java的持久化学习笔记
  • Java ResultSet接口 详细说明
  • java正则表达式入门文档
  • Java CVM port to familiar
  • java面试题总结(一)
  • JAVA面试题总结(二)
  • 【随机文章】
  • 推荐几个设计/素材站点
  • 数据源的配置和使用
  • Linux Apache Web 服务器终极教程作者:佚名 文章来源:internet
  • 数字电路如何抗干扰
  • hpux trouble shooting module 3
  • 详细编译内核方法-1【转贴】
  • 数值分析源码和库
  • Vista体验之路一(经典截图)体验软件版本Windows Vista 5536-16385 for X86
  • IBX 常见问题解答(译)
  • 两种自动检测USB设备的添加和移除的方法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.