select regdate,总PV,总点击,总独立用户,总停留时间 from 
(SELECT RegDate, SUM(StayCount) AS '总PV', SUM(ClickSum) AS '总点击', SUM(StayTime) AS '总停留时间' FROM trafficsum GROUP BY RegDate) as a,
(SELECT COUNT(DISTINCT IP) AS '总独立用户' FROM traffic GROUP BY RegDate) as b
where a.regdate=b.regdate

解决方案 »

  1.   

    好象不行,我用的是mysql数据库,老说:
    #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT RegDate, SUM( StayCount )  AS  'a1', SUM( ClickSum )  AS 我的SQL如下:
    SELECT RegDate, a1, a2, b1, a3 FROM (SELECT RegDate, SUM(StayCount) AS 'a1', SUM(ClickSum) AS 'a2', SUM(StayTime) AS 'a3' FROM trafficsum GROUP BY RegDate) AS a, (SELECT COUNT(DISTINCT IP) AS 'b1' FROM traffic GROUP BY RegDate) AS b WHERE a.RegDate = b.RegDate
      

  2.   

    你的mysql不支持子查询的,所以报错,可能要把结果放到临时表里再做查询,一个SQL可能很困难
      

  3.   

    用临时表,流程大概如下:没有用实际数据测试create temporary table tmp1 SELECT RegDate, SUM(StayCount) AS '总PV', SUM(ClickSum) AS '总点击', SUM(StayTime) AS '总停留时间' FROM trafficsum GROUP BY RegDate;create temporary table tmp2 SELECT RegDate,COUNT(DISTINCT IP) AS '总独立用户' FROM traffic GROUP BY RegDate;select a.`RegDate`,a.`总PV`,a.`总点击`,b.`总独立用户`,a.`总停留时间` from tmp1 a left join tmp2 b on a.RegDate=b.RegDate order by a.RegDate;drop table tmp1;
    drop table tmp2;