0

私はテーブルを持っています

2010年4月16日 199

2010年4月19日 310

2010年4月20日 229

2010年4月21日 275

2010年4月22日 64

2010年4月23日 504

2010年4月26日 631

2010年4月27日 565

2010年4月28日 286

望ましい結果は次のとおりです。

2010-16 199

2010-17 310

...

週ごとのグループ化データの最初の値をクエリしたいのですが、クエリは次のとおりです。

 select distinct(to_char(date1,'yyyy-mm-w')) b,
first_value(a) OVER 
(partition by  distinct(to_char (date1,'yyyy-mm-w'))
 order by date1
range BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )  c,

from t4

この問題の正解は?データをクエリできますが、実際に必要な結果は得られません。結果の前に参照したSQLクエリの結果は

2010-16 199

2010-17 504

残念ながら、私は望んでいません。

助けが必要。

4

1 に答える 1

0

少し変更したクエリを使用することにより::

 select distinct to_char(dt,'yyyy-iw') b,
first_value(num) OVER 
(partition by to_char (dt,'yyyy-iw')
 order by dt range BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )  c
from tbl
order by 1;

次のように o/p を取得します::

B   C
2010-04-15  199
2010-04-16  310
2010-04-17  631

その日付の合計週番号に基づいてデータをグループ化したいと考えていました。

この結果を得るためにオプション「iw」を使用したことを確認してください。

于 2012-12-12T12:38:49.660 に答える