1

分析を使用して次の自己結合を置き換えるにはどうすればよいですか。

SELECT 
t1.col1 col1,
t1.col2 col2,
SUM((extract(hour FROM (t1.times_stamp - t2.times_stamp)) * 3600 + extract(minute FROM ( t1.times_stamp - t2.times_stamp)) * 60 + extract(second FROM ( t1.times_stamp - t2.times_stamp)) ) ) div,
COUNT(*) tot_count
FROM tab1 t1,
tab1 t2
WHERE t2.col1      = t1.col1
AND t2.col2  = t1.col2
AND t2.col3        = t1.sequence_num
AND t2.times_stamp     < t1.times_stamp
AND t2.col4         = 3
AND t1.col4         = 4
AND t2.col5 NOT IN(103,123)
AND t1.col5     != 549
GROUP BY t1.col1, t1.col2
4

2 に答える 2

1

行間操作を使用しているため、自己結合を分析に置き換えることはできないと確信しています ( t1.time_stamp - t2.time_stamp)。Analytics は、現在の行の値と、行のサブセットに対する集計関数の値 (ウィンドウ句) にのみアクセスできます。

分析の限界の詳細な分析については、Tom Kyte のこの記事この論文を参照してください。

于 2010-03-19T10:40:39.840 に答える