0

次のようなテーブルがあります。

id    | created_on
1      2013-09-03 20:05:09
2      2013-09-05 17:03:13
...

日付 X から日付 Y までの 7 日間隔で作成されたレコード数の結果を返すクエリを作成するにはどうすればよいですか?

したがって、結果は次のようになります。

count | created_on
4       2013-09-17 00:00:00
2       2013-09-24 00:00:00
1       2013-09-31 00:00:00
10      2013-10-07 00:00:00
...
4

3 に答える 3

3

曜日を引くことで週の初めに行くことができます。これを行う1つの方法は次のとおりです。

select date(created_on - interval dayofweek(created_on) day), count(*)
from t
group by date(created_on - interval dayofweek(created_on) day);

これが週の開始日でない場合は、オフセット日を追加できます。

于 2013-09-18T04:00:26.453 に答える
1

日付フィールドでグループ化し、週単位で分類します。

SELECT
  count(*),
  YEARWEEK(created_on) as week
FROM
  yourtable
GROUP BY week

created_onこれは、日付として解釈できる型であると想定しています。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_yearweek

これにより、週ごとのグループ分けが得られますが、そのフィールド (のようになりますYYYYWW) をより読みやすいものに戻すことができます。

于 2013-09-18T04:00:14.187 に答える