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

MySQLで行のない日でも1日あたりの行数をグループ化するにはどうすればよいですか?

    対応するレコードが0の日付を処理するには、通常、カレンダーテーブルを使用して参加します。

    たとえば、calendar_dateという1つのフィールドを持つテーブルを作成します 1st Jan 2000からのすべての日付を入力します 31st Dec 2070へ 、またはレポートの目的に適したその他の範囲。

    次に、次のようなものを使用します...

    SELECT
      calendar.calendar_date,
      COUNT(*)
    FROM
      calendar
    LEFT JOIN
      yourData
        ON  yourData.timeStamp >= calendar.calendar_date
        AND yourData.timeStamp <  calendar.calendar_date + 1
    WHERE
          calendar.calendar_date >= '01 Jan 2012'
      AND calendar.calendar_date <  '04 Jan 2012'
    GROUP BY
      calendar.calendar_date
    

    このテーブルには、銀行の休日のフラグ付け、週と月の開始など、多くの追加の用途があります。フラグとインデックスを慎重に使用することで、それから多くを得ることができます。



    1. MINUSを使用する代わりに、Oracleで2つのカーソルを比較する

    2. ローリングサムの実行方法、各行には前の行の合計を含める必要があります

    3. MySQL-文字列の長さでデータを選択する方法

    4. 致命的なエラー:nullでメンバー関数query()を呼び出す