我有一个包含会员注册的表格,我希望能够开始对数据进行一些图表和分析,并寻找注册趋势等,所以我希望能够绘制一个折线图,显示有多少人签署在过去的 52 周中每周上涨。
我的图表工作正常,因为我已经在广泛使用它们,但是我正在努力弄清楚如何使用 PHP 从 MySQL 中提取数据,这让我很恼火,因为我知道这应该不难 - 该表有一个名为格式为 Ymd 的日期戳。我怎样才能最好地创建一个循环来打印该周以及前 52 周的每周注册日期和计数?
假设您的时间戳列名为 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);