首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求解!合并两张表的统计结果,数据大,可以用SQL或JAVA 求思路。

2013-12-19 
求解!合并两张表的统计结果,数据大,可以用SQL或JAVA求思路。在线等!!环境:java、mysql数据库情景:A表有t1、t2

求解!合并两张表的统计结果,数据大,可以用SQL或JAVA 求思路。在线等!!
环境:java、mysql数据库
情景:A表有t1、t2、t3、t4
      B表有t1、t2、t3、t4
A、B表的结构是一模一样的。现在的需求是对A表根据t1、t2、t3、t4进行分组得到结果集(countA、t1、t2、t3、t4),countA是各分组的记录数,B表操作同A表一样。最后要的结果集是(countB、t1、t2、t3、t4).
最后还要统计A表字段t5为success、wait状态的分组得到countAA,即:同A表一样先进行(t1、t2、t3、t4)分组统计,条件为t5字段的值为success或wait。结果集为:(countAA、t1、t2、t3、t4)。
最终得到的结果集为(countA、countAA、countB、t1、t2、t3、t4)。

我的思路是,分三次分组统计,最后根据t1、t2、t3、t4把3个临时表合并。但因为有几百万的数据,实际操作中分组字段还有增加,单对A表进行分组统计都需好十几秒,合并临时表更是耗时,搞不好数据库表会被锁死。

我还尝试过分3次查询,然后在java代码中对3个结果集进行for循环,然后根据t1、t2、t3、t4属性相等条件来合并结果集。但这样的循环有最低几十亿次,耗时也太长。

有人给个思路么,用sql 或者 java代码解决都行。
在线等!!!很急。
[解决办法]
数据量大的情况,还需要从数据库本身入手去解决问题,可以考虑建立索引、视图或临时表来解决这种问题。
[解决办法]
1,如果是数据库表设计的有问题,没法;
2,尝试各种表连接与过虑,看哪种更好。
[解决办法]
两结果集union all,聚合一次,用行转列一次出来那几个查询列。

热点排行