シナリオが以下のようなクエリを実装する必要があります。シナリオのクエリ
Col_1 Col_2 Col_3 Col_4 Col_5
A AB AC AD AE
B BC BD BE ?
C CD CE ? ?
D DE ? ? ?
E ? ? ? ?
以下のヘルプは高く評価されます。
おかげで、
アミットシナリオが以下のようなクエリを実装する必要があります。シナリオのクエリ
Col_1 Col_2 Col_3 Col_4 Col_5
A AB AC AD AE
B BC BD BE ?
C CD CE ? ?
D DE ? ? ?
E ? ? ? ?
以下のヘルプは高く評価されます。
おかげで、
アミットあなたは、列ごとに異なるrows
が必要になります。この使用して行1次と1次を実装しようと
select
col_1
,col_1 || min(col_1) over (order by ... rows between 1 following and 1 following)
,col_1 || min(col_1) over (order by ... rows between 2 following and 2 following)
,col_1 || min(col_1) over (order by ... rows between 3 following and 3 following)
,col_1 || min(col_1) over (order by ... rows between 4 following and 4 following)
ありがとうDieter、 それはうまくいきます。私は1つの疑いがあり、常にあった。 min(col1)overはどうやってここで働きますか? max(col1)over ..はまた必要な結果を与える。違いは何ですか? – user3901666
@ user3901666:これは、TeradataのStandatd SQLの 'LEAD(col_1、n)'を模倣する方法です。ウィンドウのサイズはちょうど1行の 'MIN'であり、' MAX'は同じ値を返します。 – dnoeth
{
SELECT CHR(64+LEVEL) AS A,
DECODE(SIGN(4 - LEVEL) , -1, '?',CHR(64+LEVEL)||CHR(65 +LEVEL)) B,
DECODE(SIGN(3 - LEVEL) , -1, '?',CHR(64+LEVEL)||CHR(66 +LEVEL)) C,
DECODE(SIGN(2 - LEVEL) , -1, '?',CHR(64+LEVEL)||CHR(67 +LEVEL)) D,
DECODE(sign(1 - level) , -1, '?',chr(64+level)||chr(68 +level)) E
from dual connect by level <6;
} 上これは、Oracle 10gを使用し、他のDBは、他のいくつかの戦略を持っているべきです。
ありがとうDieter、 それは完全に働いています。 @ nirjhar - あなたの助けを借りて、teradata.Thanksでそれを実装する方法を正確には分かりません。 – user3901666
。 – user3901666
実際のデータを表示できますか?あなたのTeradataリリースは何ですか? – dnoeth
こんにちはDieter、 今のところ、私は実際のデータを持っていません。私のteradataバージョンは14.01.0.04です。 – user3901666