oracle 行列統計轉換
阿新 • • 發佈:2019-01-24
抄來的沒有弄的很明白的:
sign是一個對於寫分析SQL有很強大的功能
下面對sign進行一些總結:
但屬性student取0和1以外的值,或者student取兩個以上的標法值,問題就不會這麼簡單了
解決辦法就是特徵函式(abs(),sign())
常用的特徵演算法
[A=B]=1-abs(sign(A-B))
[A!=B]=abs(sign(A-B))
[A<B]=1-sign(1+sign(A-B)) 不能用-sign(A-B):因為如果不滿足A
[A<=B]=sign(1-sign(A-B))
[A>B]=1-sign(1-sign(A-B))
[A>=B]=sign(1+sign(A-B)))
[NOTα]=1-d[α]
[αANDb ]=d[α]*d[b]
[αOR b ]=sign(d[α]+d[b ])
例如:
A<B Decode( Sign(A-B), -1, 1, 0 )
A<=B Decode( Sign(A-B), 1, 0, 1 )
A>B Decode( Sign(A-B), 1, 1, 0 )
A>=B Decode( Sign(A-B), -1, 0, 1 )
A=B Decode( A, B, 1, 0 )
A between B and C Decode( Sign(A-B), -1, 0, Decode(Sign(A-C), 1, 0, 1 ))
A is null Decode(A,null,1,0)
A is not null Decode(A,null,0,1)
A in (B1,B2,...,Bn) Decode(A,B1,1,B2,1,...,Bn,1,0)
nor LogA Decode( LogA, 0, 1, 0 )
LogA and LogB LogA * LogB
LogA or LogB LogA + LogB
LogA xor LogB Decode(Sign(LogA),Sign(LogB),0,1)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
select * from grade1;
STUDENTID SUBJECTID MARK
--------- --------- ----
101 A01 59
101 A02 72
101 A03 90
102 A01 75
102 A02 91
103 A01 71
sign是一個對於寫分析SQL有很強大的功能
下面對sign進行一些總結:
但屬性student取0和1以外的值,或者student取兩個以上的標法值,問題就不會這麼簡單了
解決辦法就是特徵函式(abs(),sign())
常用的特徵演算法
[A=B]=1-abs(sign(A-B))
[A!=B]=abs(sign(A-B))
[A<B]=1-sign(1+sign(A-B)) 不能用-sign(A-B):因為如果不滿足A
[A<=B]=sign(1-sign(A-B))
[A>B]=1-sign(1-sign(A-B))
[A>=B]=sign(1+sign(A-B)))
[NOTα]=1-d[α]
[αANDb ]=d[α]*d[b]
[αOR b ]=sign(d[α]+d[b ])
例如:
A<B Decode( Sign(A-B), -1, 1, 0 )
A<=B Decode( Sign(A-B), 1, 0, 1 )
A>B Decode( Sign(A-B), 1, 1, 0 )
A>=B Decode( Sign(A-B), -1, 0, 1 )
A=B Decode( A, B, 1, 0 )
A between B and C Decode( Sign(A-B), -1, 0, Decode(Sign(A-C), 1, 0, 1 ))
A is null Decode(A,null,1,0)
A is not null Decode(A,null,0,1)
A in (B1,B2,...,Bn) Decode(A,B1,1,B2,1,...,Bn,1,0)
nor LogA Decode( LogA, 0, 1, 0 )
LogA and LogB LogA * LogB
LogA or LogB LogA + LogB
LogA xor LogB Decode(Sign(LogA),Sign(LogB),0,1)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
select * from grade1;
STUDENTID SUBJECTID MARK
--------- --------- ----
101 A01 59
101 A02 72
101 A03 90
102 A01 75
102 A02 91
103 A01 71