この機能は、マテリアライズドビュー と呼ばれる機能によって最適に提供されます。 、残念ながらMySQLにはありません。 PostgreSQLなどの別のデータベースシステムへの移行を検討できます。
ストアドプロシージャ、トリガー、およびイベントを使用して、MySQLでマテリアライズドビューをエミュレートする方法があります。集計データを更新するストアドプロシージャを作成します。挿入ごとに集計データを更新する必要がある場合は、プロシージャを呼び出すトリガーを定義できます。データを数時間ごとに更新する必要がある場合は、MySQLスケジューライベント またはそれを行うためのcronジョブ。
オプション3と同様に、入力データの日付に依存しない組み合わせアプローチがあります。いくつかの新しいデータが到着するのが遅すぎて、それが集計に含まれない場合にどうなるか想像してみてください。 (この問題は発生しない可能性がありますが、わかりません。)新しいデータを「バックログ」に挿入するトリガーを定義し、プロシージャにバックログからのみ集計テーブルを更新させることができます。
これらの方法はすべて、この記事で詳しく説明されています: http://www.fromdual.com/ mysql-マテリアライズドビュー