次の表があります。
GroupId StartDate Time
1 2013-01-01 15:00 10
1 2013-01-01 16:00 10
1 2013-01-01 17:00 10
1 2013-01-02 08:00 10
1 2013-01-02 09:00 10
2 2013-01-01 15:00 2
2 2013-01-01 16:00 2
上記の例では 1 時間ごとに記録されます (実際のデータでは 1 分ごとに記録されます)。
私は今日と昨日のためにそのようなフォーマットを持っている必要がありますが、しばらくすると冗長になり始めます - 日をグループ化するだけで十分です.
上記のレコードを削減する次の方法を考えています。
- データを新しい「一時」テーブルにコピーし、それらをグループ化する手順を毎日実行します。次に、元のテーブルを削除し、「temp」の名前を変更します。もちろん、すべての関係を復元する必要があります (上記の例の GroupId 列)。
- 常に 2 つのテーブルがあり、テーブルの代わりにビューをクエリします (INSERT と SELECT レコードのみ)。毎日、グループ化されたレコードを「グループ化」テーブルにコピーし、「詳細」テーブルから削除します
私の意見では、どちらのオプションも問題を引き起こしますが、もっと良い方法があるのでしょうか?
アップデート
最初の答えのために、私は誤解されているのではないかと思います。結果レコードは次のようになります
GroupId StartDate Time
1 2013-01-01 00:00 30
1 2013-01-02 00:00 20
2 2013-01-01 00:00 4
したがって、これは 1 日およびグループごとに 1 つのレコードであり、Time 列はすべての詳細レコードの合計です。