5年間のデータを含むテーブルに大きな時系列データセットがあります。データは非常に構造化されています。それは時間列でクラスター化/順序付けされており、この5年間全体にわたって正確に10分ごとに正確に1つのレコードが存在します。トリッキー:グラフ作成の時系列データのSQL Server側集計
私のユーザーサイドアプリケーションでは、400ピクセル幅の時系列チャートがあり、ユーザーは1時間から5年間の時間スケールを設定できます。したがって、400以上のレコードを返すこのチャートによるデータベースへのクエリは、物理的に表示できないデータを提供します。
私が知りたいのは、 SQLデータベースは、データベースが特定の時間範囲に対して照会されたときに、400以上のレコードを返さない適切な平均集計を動的に作成するようなアプローチを提案できますか?
例1):時間範囲が5年の場合、SQL Serverは4.5日ごとに〜1値を計算します(5yrs * 365days/400recordsが必要です)。したがって、各4.5日間のビンのすべての10分間のサンプルを平均し、各ビンのレコードを返します。合計約400名。
例2):時間範囲が1ヵ月の場合、SQL Serverは1.85時間ごとに〜1レコードを計算します(31日/ 400レコード)ので、1.85時間ごとに10分間のサンプルすべてを平均し、各ビンについて記録する。合計約400名。
私は理想的には、アプリケーションの観点から、静的な表のように照会できるソリューションがほしいと思います。
私は本当に提案されたアプローチやコードスニペットを感謝します。
説明:time列のデータ型はdatetime2で、値の列はfloat型です。 –
私が攻撃する方法を理解していない大きな課題は、ビンサイズが事前にクライアントに知られていないことです。タイムコードがstartTimeとendTimeの間にある場合は、theTableから値を選択します(擬似コード)。私は、このクライアント\インターフェイスは400レコードしか処理できないので、この時間間隔のレコード数を考慮して、どのような集計を行うべきかを知っています。 –