同様の検索を試みましたが、問題を正確に特定できませんでした。現在、特定のサイトの平均温度データを保持していること、私はコラム「SITE」、「DAY」、「TIME」と、のTEST_DATAそれを呼びましょう、テーブルを持っており、「温度」のOracle 11gで存在しない場合でも1時間ごとにデータを返すクエリを実行する必要があります。
作業
特定の日時に実行され、毎日の1時間ごとのデータは含まれません。
TESTデータ:現時点では、のは、私はこれだけのデータを持っているとしましょう、私は、毎日のために結果セットを返すビューまたはクエリを構築することです必要なもの
そして毎時間、それはと同様の結果を返しますTEST_DATAテーブル(その場合には0を返す)、にない場合でも:
SITE | DAY | TIME | TEMPERATURE
Home | 1 | 0 | 0
Home | 1 | 1 | 0
Home | 1 | 2 | 0
Home | 1 | 3 | 15
Home | 1 | 4 | 0
Home | 1 | 5 | 23
Home | 1 | 6 | 0
Home | 1 | 7 | 0
Home | 1 | 8 | 0
Home | 1 | 9 | 0
Home | 1 | 10 | 0
... | ... | ... | ...
誰もが、私はこの使用してSQLをやって行く可能性がどのように任意のアイデアを持っていますか?
私は、24 * 31のエントリと曜日/時間の列を持つテーブルを試してみましたが、各曜日/時間のペアの行を作成しましたが、私が望むようにこれを得る方法を考え出していません。
私は、100万行以上の長さのテーブルを作成する2000以上の異なるサイトで作業しているので、この可能性のあるサイトごとにその行が多いこの最終テーブルを作成しないようにします。
私は問題について助けていただきありがとうございます。
EDIT:@Gordon Linoffの答えに おかげで、私は私のテーブルに適応することができたと私はそれを望んでいたとおりの結果を得ました。 31.値をもたらすことleft join
を使用し、その後、すべての行を生成し、 TEST_DAY_TIME
私が言及した他のテーブルを使用することによって、744日/時間のペアがクロスとして最初のテーブルと結合するため、クエリを少し簡素化でき、完全に機能しました。迅速な答えをありがとう、私はあなたのアプローチに行くことを終えて以来、私は答えとしてあなたの返信をマークされます。 –