2017-11-30 6 views
0

範囲でウィンドウ枠節を使用する場合は、集計するウィンドウの開始点と終了点を定義します。値に対して複数の行を持つものによって注文した場合、処理される実際の行は確定的でなく、このセット内のどこかになります。結果には、現在の行と同じ値を持つすべての行がこの場合も含まれますか?現在の行にウィンドウ枠節に等しい行が含まれていますか?

https://my.vertica.com/docs/8.1.x/HTML/index.htm#Authoring/AnalyzingData/SQLAnalytics/WindowFraming.htmこれは明示的には言及していませんが、実際の非確定的な行であることを示唆しているようです。だから、

私は、次の表tがある場合:

| ts    | x  | 
|------------------ |--- | 
| 2017-11-29 10:00 | 1  | 
| 2017-11-30 10:00 | 2  | 
| 2017-11-30 11:00 | 3  | 
| 2017-12-01 11:00 | 4  | 

し、次の問合せ:

with results as (
select 
sum(x) over (order by ts::date range between current row and unbounded following) as r 
from t 
) 
select r from results where ts = '2017-11-30 11:00' 

それが9(2 + 3 + 4)または、それは9かのどちらかを言うだろうと言うだろうし注文がどのように行われたかに応じて7?

同じ値のアイテムをすべて私のウィンドウに含めるにはどうすればよいですか?だから、

答えて

0

ちょうどあなたが実際に次のクエリを使用してこれをテストすることができます結果からすべてのデータを取得:

with results as (
select 
sum(x) over (order by ts::date range between current row and unbounded following) as r 
from t 
) 
select r from results 

結果は以下のとおりです。 R 10 9 9 4、そこに2つの9つのがあることを意味します実際には現在の行だけでなく、それ以上注文できないので、日付全体が含まれます。

これは、Postgres 9.6ではsqlfiddle、データベースではVertica 8.1で直接テストしました。

関連する問題