请教大神们一个数据库问题。谢谢了~~

kj_10180078 2017-10-29 09:12:25
现在有两张表:
表1:一个字段为id,time,c1,c2
表1:一个字段为id,time,c3
还有一个计算公式,例如c1+c2/c3,
现在需要生成一个动态表:字段为id,time,c1,c2,c3,result,其中result存放c1,c2,c3通过公式计算的结果。
c1、c2字段的数据通过下面的sq语句按照id进行汇总,汇总算法为求和:
select sum(c1),sum(c2) from table1 group by id,time;
c3字段的数据通过下面的sq语句按照id进行汇总,汇总算法为求和:
select sum(c3) from table2 group by id,time;
现在需要将c1、c2和c3汇总的数据先放到缓存里(因为字段来自不同的表,所以直接插入到目标表效率较低),然后再将缓存里的数据逐条插入到目标表里,然后再从目标表里取出数据按照公式进行计算,插入到result字段。

请大神们指教下这个问题有没有比较高效的实现方法,小弟刚学习java不久,写了实现代码,但是感觉太繁琐,跪求大侠们指教~~
...全文
218 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ribut9225 2017-10-30
  • 打赏
  • 举报
回复
 不知道你是什么数据库,我按照SQL的数据库来写一下
 
 SELECT
        t1.t1_id,
        t1.t1_time,
        t1.t1_sum_c1,
        t1.t1_sum_c2,
        t2.t2_sum_cs,
        t1.t1_sum_c1 + t1.t1_sum_c2 / t2.t2_sum_c3 AS result
  FROM 
 			(
 					SELECT 
       					id as t1_id,
       					time as t1_time,
       					sum(c1) as t1_sum_c1,
      					 sum(c2) as t1_sum_c2
 					FROM 
     						 table1
 					GROUP BY 
       					id,time
  			) t1,
  			(
    			 SELECT 
       					 id as t2_id,
       					 time as t2_time,
        					sum(c3) as t2_sum_c3
     			FROM 
        					table2
     			GROUP BY 
        					 id,time
  ) t2
  WHERE t1.t1_id = t2.t2_id
       
kj_10180078 2017-10-29
  • 打赏
  • 举报
回复
发了重复贴,因为第一次发没有刷出来。
qq_36555055 2017-10-29
  • 打赏
  • 举报
回复
java 用啥 缓存? 直接用sql 统计出来不好吗

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧