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

MySQL Group By Dates

    ほぼ何でもグループ化できます。あなたが欲しいものを示すために列に何かを得ることができるなら、あなたはそれにグループ化することができます。したがって、2つの期間だけ、ifでグループ化できます。

    SELECT * FROM table
    GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
    

    より長い期間(複数年)にわたる期間が必要な場合は、period_diffを使用して次のことを区別できます。

    SELECT * FROM table
    GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
    

    それはあなたの日付と開始期間の間に渡された6ヶ月のブロックの数を年月の形式であなたに与えるでしょう。



    1. 一部のユーザーは、mysqlに複数の個別のレコードを持っています

    2. mysql警告を解決する方法:InnoDB:page_cleaner:1000msの意図されたループはXXXmsかかりました。設定が最適でない可能性がありますか?

    3. UNIQUE制約は、フィールドにINDEXを自動的に作成しますか?

    4. 1つのスクリプトで複数のトリガーを作成する方法はありますか?