ルックアップ値を含む結合テーブル(実際にはルックアップしきい値と同じように)を使用して、SQLクエリに線形補間を構築する必要があります。私はSQLスクリプティングについては比較的新しいので、私は正しい方向で私を指すサンプルコードを探しましたが、私が出会ったSQLスクリプトのほとんどは、日付とタイムスタンプの間の補間用であり、私はこれらを私の状況に関連付けることができませんでした。ルックアップテーブルに基づくSQL線形補間
基本的に、私は、例えば、単一の列の小数点以下の値の多数の行を有するメインデータテーブルを有する:
Main_Value
0.33
0.12
0.56
0.42
0.1
は今、私は、上記行の各々に対する補間データ点を生成する必要がある、ベース非線形しきい値および関連する線形正規化された値を含む6行と結合ルックアップテーブルに:Main_Value列の値が0.45である場合
Threshold_Level Normalized_Value
0 0
0.15 20
0.45 40
0.60 60
0.85 80
1 100
したがって、例えば、クエリは、その位置を検索します(またはその間の)Threshold_Levelとint Normalized_Value列の隣接値(この例では40になります)に基づいてこれをerpolateします。
特に、結合されたテーブルを使用して線形補間のSQLの例を追跡するのは難しいため、これに関するSQLクエリを構築するための洞察は本当に感謝しています。
私はいくつかの種類の丸めを使うことができると指摘されているので、以下にさらに詳細な表を示します。例えば、
Threshold_Min Threshold_Max Normalized_%
0.00 0.15 0
0.15 0.18 5
0.18 0.22 10
0.22 0.25 15
0.25 0.28 20
0.28 0.32 25
0.32 0.35 30
0.35 0.38 35
0.38 0.42 40
0.42 0.45 45
0.45 0.60 50
0.60 0.63 55
0.63 0.66 60
0.66 0.68 65
0.68 0.71 70
0.71 0.74 75
0.74 0.77 80
0.77 0.79 85
0.79 0.82 90
0.82 0.85 95
0.85 1.00 100
:私はそれを以下の表にThreshold_MinとThreshold_Max値の間にある(上記の最初のテーブルから)各Main_Valueを検索するSQLクエリを好きで、「Normalized_の%」の値を返しますMain_Valueテーブルの値が0.52の場合、Threshold_Min 0.45とThreshold_Max 0.60の間にあるため、Normalized_%は50%です。問題は、Threshold_Min値とMax値が線形でないことです。誰かがこれをスクリプトする方法の方向に私を指すことができますか?
所定のメインデータテーブルの例に基づいて期待される結果を展開してください。実際に線形補間を使用しようとしているようには思えません。丸めに近いように見えます。 –
あなたはどのデータベースを使用していますか? – heikkim
ありがとうございます@ノーラ、私は元の質問に詳細なテーブルを追加しました - 私はあなたが提案するより良い解決策になると思う! – Jon