これは、私が直面している問題の最小例です。列RAINFALL
、LOCATION
およびDATETIME
を持つテーブルRAIN
が各都市の降雨のmmを示し、日付も記録しているとします。Oracleでの集計後にレコードが欠落している場合は、ゼロを記入してください
RAINFALL || LOCATION || DATETIME
13 || Paris || 5 Jan 2016
10 || London || 5 Jan 2016
5 || New York || 5 Jan 2016
7 || Paris || 13 Jan 2016
24 || London || 13 Jan 2016
4 || Paris || 21 Jan 2016
私は都市ごとの雨のミリメートルを集約したいの週なので、私ができることは以下の通りです:
SELECT sum(RAINFALL) as RAINFALL,
to_char(DATETIME,'IW') as week_number,
LOCATION
FROM RAIN
group by to_char(DATETIME,'IW') , LOCATION;
この意志出力何かのように:
10 01 London
5 01 New York
13 01 Paris
24 02 London
7 02 Paris
4 03 Paris
で少なくとも私の設定のために。私は実際にも出力にそれを希望することは次のとおりです。
10 01 London
5 01 New York
13 01 Paris
24 02 London
0 02 New York
7 02 Paris
4 03 Paris
0 03 New York
0 03 London
違いは、私は何の記録もただ1つの都市がレコードを持っているそれぞれの週のために存在していない0を埋めるために、クエリをしたいということです。私は数週間は望んでいないが、レコードは存在しない。 Oracleでこれを行うにはどうすればよいですか?
この例では、降水量の合計はほとんど価値がないと理解していますが、私の質問を明確にするために、この最小限の例を作成しました。
ありがとう、これはトリックです!あなたはtmp_rの代わりにRAINを入力したいかもしれませんが、残りはうまくいくようです! – Lamora