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 に答える