1

我想获取包括本周在内的最近 4 周的结果。所以假设我有一个统计表,其中包含上个月 4 月的统计数据,现在是 5 月 4 日......当我写这个查询时:我想获取唯一访问者:

 SELECT COUNT(distinct ip ) AS uni, (
date_added
) AS wday, FROM_UNIXTIME( date_added ) AS cusotms
FROM  `site_stats` 
WHERE FROM_UNIXTIME( date_added ) >= DATE_SUB( SYSDATE( ) , INTERVAL 4 WEEK ) 
GROUP BY WEEK( FROM_UNIXTIME( date_added ) ) 

它发现了以下结果:

uni     wday        cusotms
2   1333819740  2012-04-07 22:29:00
6   1333906140  2012-04-08 22:29:00
7   1334510940  2012-04-15 22:29:00
7   1335115740  2012-04-22 22:29:00
5   1336089600  2012-05-04 05:00:00

但我想要最后 4 周,包括本周。我不知道为什么这显示了 5 月 4 日、4 月 22 日、4 月 15 日和 4 月 8 日和 7 日的记录。我在想像下面这样的事情

这是过去 4 周按周分组的正确结果吗?我在想应该是5月4日,

4 may
4-7 = 28 april
4-14days = 21 april
and then 14 april
and last 7 april
??

我需要将此输出放在图表中以显示上周的统计数据...任何帮助将不胜感激。

提前致谢 !

4

2 回答 2

0

您获取确切的日期,似乎您想要获取星期:

SELECT COUNT(distinct ip ) AS uni, (
date_added
) AS wday, WEEK( FROM_UNIXTIME( date_added ) ) AS cusotms
于 2012-05-04T12:29:13.823 回答
0

这是解决方案:

SELECT COUNT( DISTINCT ip ) AS uni, ( 
    date_added
    ) AS wday, FROM_UNIXTIME( date_added ) AS cusotms
    FROM `site_stats` 
    WHERE FROM_UNIXTIME( date_added ) >= CURDATE( ) - INTERVAL DAYOFWEEK( CURDATE( ) ) -3WEEK
    GROUP BY WEEK( FROM_UNIXTIME( date_added ) ) 
    LIMIT 0 , 30

希望能帮助到你 :)

于 2012-05-04T16:11:49.480 回答