$sql1 = "select distinct date, count(id) from windows where start_date between '2017-01-01' and '2017-10-31' and (start_date!='0000-00-00') group by date";
$sql2 = "select distinct date, count(id) from AIX where start_date between '2017-01-01' and '2017-10-31' and (start_date!='0000-00-00') group by date";
我有这两个查询以(日期,ID)的形式返回输出。我想要的是合并这两个表,以便我得到一个数组的结果为(日期,ID1,ID2),其中ID1是'windows'表,ID2是'AIX'表,根据日期,他们必须打印ID的。我尝试使用“加入”,但这不起作用。 我在php中使用了array_merge()将结果合并到一个json数组中,但这也没有用。有没有办法解决这个问题?
答案 0 :(得分:0)
因为您想要组合来自两个不同表的聚合,我认为您必须先单独聚合然后以某种方式组合结果。在下面的查询中,我在子查询中聚合了两个表,然后在日期中加入它们。假设两个表都包含所有日期并具有相同的日期,这应该可以正常工作。
calendar
正如我上面提到的,如果任何一个表完全没有日期,那么你将不得不做更多的工作。在这种情况下,您可以使用日历表来包含缺少的日期。
修改强>
我稍微更新了查询以使用日历表。要使此查询有效,只需使用date
列定义一个表betatargetstartegy<-function(beta,targetbeta,Re,C,lamda,Wp)
{
dvec=Re
Dmat=2*lamda*C
Amat=cbind(beta,1,diag(13),-diag(13))
bvec=c(targetbeta,1,rep(-2,26))-t(Amat)%*%Wp
result=solve.QP(Dmat,dvec,Amat,bvec,meq=2)$solutions+Wp
return(result)
}
t=c(0.5,1,1.5)
Wp=t(t(rep(1/13,13)))
a=expected_return(60,65)
b=covariance(60,65)
betatargetstartegy(beta,t,a,b,0.5,Wp)
,其中包含涵盖两个表格的完整日期范围。