背景:
  对一个月的天表(即30张左右)进行汇总查询查询,比如:对一个用户,今天发表帖子20贴,那么今天的天表就会有20天记录! 
 然后对原始表进行天表汇总,大概有500W的用户数量,每个用户对应有发帖的次数。
 那么要统计出每个用户每个月发送的帖子量有多少? 即对天表进行汇总。怎么实现?不是纯SQL,可以用编程语言实现。由于数据量太大,联表查询不合适,全部放到内存也不合适。 到底要怎么实现?求大神指教
例子:
 表名: tiezi_20131101 tiezi_20131102 tiezi_20131103 tiezi_20131104 tiezi_201311**结构: 用户名   发帖数

解决方案 »

  1.   

    先把年份确定了,比如
    int iCount=0;//iCount为帖子数量
    int iYear=2013;
    for(int iMonth=1;iMonth<=12;iMonth++)
    {
     
       for(int iDay=1;iDay<=31;iDay++)
          {
             //组合表的名称,把月份和天数 小于10的前面添加0,%s为组合的日期
            iCount+=select count(*)  from  "tiezi_%s"  where use_id=%d;
           }
    }
    这个iCount不就是所有的帖子数目吗!
      

  2.   

    我也知道加起来就行了!关键是数据量太大,一天就有500多W条数据,怎么累加?全部加载到内存,服务器肯定爆掉!不是只累计次数么??不用加载数据呀,直接把 select count(*) from table where .... 的值相加呀,你想复杂了吧