sql >> データベース >  >> RDS >> Mysql

MySQLで週ごとにグループ化する方法は?

    の両方を使用できますYEAR(タイムスタンプ) および WEEK(timestamp ) 、および SELECTでこれらの式の両方を使用します およびGROUPBY 条項。

    過度にエレガントではありませんが、機能的です...

    もちろん、これら2つの日付部分を1つの式に組み合わせることができます。つまり、

    SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)), etc...
    FROM ...
    WHERE ..
    GROUP BY CONCAT(YEAR(timestamp), '/', WEEK(timestamp))
    

    編集 :Martin 指摘 YEARWEEK(mysqldatefield) 関数ですが、その出力は上記の長い式ほど目に優しいものではありません。

    編集2 [3年半後!]:
    YEARWEEK(mysqldatefield) オプションの2番目の引数(mode )0または2に設定すると、完全で集計するのにおそらく最適な方法です。 それが望ましい場合は、数週間(つまり、1月1日にまたがる週を含む)。 YEAR()/ WEEK() この回答で最初に提案されたアプローチには、そのような「またがる」の集計データを分割する効果があります。 2週間に1週間:1週間は前年度、もう1週間は新年。
    会計などでは、多くの場合、両端に1週間ずつ、最大2週間かかるという犠牲を払って、毎年クリーンカットが望まれます。そのために、 YEAR()/ WEEK() アプローチの方が優れています。



    1. PythonでSQLデータベースを作成および操作する方法

    2. postgresqlでJSONを解析する方法

    3. OracleテーブルのExcelワークシートへのエクスポート

    4. 新しいMicrosoftAccess機能が登場します!