9

我有一个包含会员注册的表格,我希望能够开始对数据进行一些图表和分析,并寻找注册趋势等,所以我希望能够绘制一个折线图,显示有多少人签署在过去的 52 周中每周上涨。

我的图表工作正常,因为我已经在广泛使用它们,但是我正在努力弄清楚如何使用 PHP 从 MySQL 中提取数据,这让我很恼火,因为我知道这应该不难 - 该表有一个名为格式为 Ymd 的日期戳。我怎样才能最好地创建一个循环来打印该周以及前 52 周的每周注册日期和计数?

4

1 回答 1

13

假设您的时间戳列名为 signup_date,您可以执行如下查询:

SELECT
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups 
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date);

这将为您提供一个包含 2 列的结果集、一年中的一周以及该周有多少注册。

编辑1:

要获取每个结果的星期几,您可以将以下内容添加到查询中

SELECT
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups,
    SUBDATE(signup_date, INTERVAL WEEKDAY(signup_date) DAY) AS date_of_week
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date);
于 2012-04-21T14:02:41.893 回答