快速查看并再次找不到我的问题。所以我希望这里有人能够帮助。 我有一个与下面类似结构的大桌子。mysql按小时汇总多个列
DateTime | InboundUserID | OutboundUserID | CustomerUserID | Cost | Mins | Account Number
我想组以上数据为每小时块,结果在另一台具有相似结构存储到下面。
Date | HourFrom | HourTo | SumMins | SumCost | OutboundUserID | CustomerUserID | Account Number
我已经写了下面的代码/查询为了做到这一点,但它并不完全正确。基本上这个小组意味着并不是所有的数据都被汇总。例如,当查看新创建的表时,我拥有所有OutboundUserID数据,但没有任何CustomerUserID数据。
for(int i=0;i <=23;i++)
{
for(int j=1 ; j <=31 ; j++)
{
String Time = String.format("%02d", i);
query = "INSERT DELAYED INTO correlated_calls_hourly " +
" SELECT DateOnly,HourFrom,HourTo,DURATION,CALLCOUNT,`Price Group ID`,INBOUNDCOST,INBOUNDREVENUE,`InboundCustomerID`,OUTBOUNDCOST,OUTBOUNDREVENUE,`Outbound Customer ID`,`Customer ID`,`Account Number`,`Service` FROM" +
" ("+
" SELECT "+
/* snip sum(),case and date/time part of query */
" GROUP BY DateOnly,`InboundCustomerID`,`OutboundCustomerID`,`CustomerID`,`AccountNumber`,`PriceGroupID`,`Service`" +
")a ";
}
}
我已经采取了创建三个不同的表由OutboundUserID/InboundUserID/CustomerUserID分别汇总数据的步骤。但如果我可以让这个总结表正确工作,那将会更加优雅。
如果有人可以帮助我想办法通过单个sql查询来获得所需的结果,我会非常感激。
提前感谢
艾伦
你有没有考虑过使用视图?如果您只是想将数据连接在一起以形成一种“报告”表格,创建单个表格似乎有点过分。 – DrColossos 2010-09-28 10:43:55
我曾想过这件事。不幸的是,大桌子现在有1200万行,每天增长大约500,000行。我相信这是超出了简单观点的范围? – 2010-09-28 12:39:02