2017-09-18 16 views
0

SQL結果(Vertica)からヒストグラムを作成したいと思います。 これを行うにはWIDTH_BUCKETを使用しました。SQLからヒストグラムを作成

基本的に、私がアプローチする方法は、event_Xとevent_Yのタイムスタンプを取得し、各イベントでターゲット値が一致するようにすることです。その後、各イベントのタイムスタンプの差を取る。

select _time, WIDTH_BUCKET(_time, 600, 86400, 100) as histogram 
    from(  
    select (a.ts - b.ts) as _time 
FROM table.e a, table.e b 
WHERE a.server_date between current_date - 60 and current_date -1 
AND a.event_name = 'event_X' 
AND b.event_name = 'event_Y' 
and ((a.ts - b.ts) > INTERVAL '5 minutes' and (a.ts - b.ts) < INTERVAL '24 hours') 
AND a.target = b.target 
)x 
group by 1 
order by 1 ASC 

ただし、これは次のエラーを返します。

a.ts-b.tsは、tsが時間データ型であるため、時間スタンプのINTERVALデータ型です。 なぜ私はこのエラーが発生しているのか分かりません。

誰かが私のSQL上で何が間違っているのかを明確にすることができれば、本当に感謝しています。

+0

ちょうど確信するためには、正しい権限を持っていますか? – 0x11

+0

はい。私はWIDTH_BUCKETで別のクエリを実行し、それは働いた。それはINTERVAL値を持っていませんでした。ちょうど普通の数値です。この特定のクエリは上記のエラーを返します。 –

+0

私が間違っている場合は私を訂正しますが、このテーブルの異なるレコードでは '_time'が違うでしょうか?バケットはレコードごとに異なる間隔を持つことはできません。 – 0x11

答えて

関連する問題