Satırların miktarında bir fark olduğunu görebiliyorum ama hala bunun için & hesabını anlayamıyorum.Teradata SQL ayarlaması. Birden fazla sol dış birleştirmeyi yeniden yazma
sel a.15 ,b.16 , c.17, d.18 from
a LOJ b on (a.1=b.1 and a.2=b.2 and a.3=b.3 and a.4=b.4 and a.5=b.5)
LOJ c on (a.1=c.1 and a.2=c.2 and a.3=c.3 and a.4=c.4 and a.5=c.5)
LOJ d on (a.6=d.6 and a.7=d.7 and a.3=d.3 and a.4=d.4)
group by 1,2,3,4
Tablo a
a
bir milyar + satır özellik tablosu ve PI tuşları hiçbir yerde katılmak fakat katılır ve çok d
bazı PI tuşları içinde b
ve c's
PI anahtar yok üzerinde katılıyor olduğunu. Ben küçük satır sayısı farkı görmek 1/4 Darbe işlemci ve>% 50 makara kapalı ama - Yukarıdaki sorgu bir ton daha hızlı çalışır
select < same keys >
from a LOJ (select <keylist here> from
b JOIN c
on
(b.1=c.1 and b2.=c.2 and b3=c.3 and b4=c.4 and b.5=c.5)
JOIN d
on (b.3=d.3 and and b.4=d.4)
) e
on
(e.1=a.1 and e.2=a.2 and e.3=a.3 and e.4=a.4
and e.5=a.5 and e.6=a.6 and a.7=e.7)
group by <col list>
/*DT e created that joins b c and d.Though I joined on 3 and 4 before
with b and d I took them again in the derived table e
and used them again to improve query efficiency */
olarak Yani yeniden yazdım. Yani mantığım
a
, bu tablolarla birlikte
b,c,d
LOJ idi. Yeniden yazma işlemi
a
'u sadece 1 tek masayı LOJ ile
b,c,d
(bir 'kaynaşmış tablo') ile birleştirecektir. Ayrı ayrı LOJ ise veya tek bir tabloya katılırsa,
a
'un önemi nedir? Ama öyle - Satırları kaybediyorum ve nasıl olduğunu anlamak istiyorum. Anladığım kadarıyla IJ'ler bu şekilde yeniden yazılabilir ancak LOJ'ler aynı değildir. Sayımda (*) KÜÇÜK bir fark vardır - yaklaşık 15 satır/milyon. Peki benim soru, 2. sorguya ne gibi değişiklikler ekleyeceğim, böylece bu 15 satır (delta) da dahil edilebilir ve sorgular eşdeğerdir.
Bunu tekrar gördükten sonra düşüncelerden sonra .. Nasıl farklı sonuçlar verebileceğimi anlıyorum (çünkü ben
a
'u ayrı ayrı üç basamaklıyorum) ama Soru 1'e eşdeğer olması için 2'ye ne eklemem gerekiyordu.
Evet A, ikinci dış sorguda olduğu gibi ilk dış sol birleştirmede. İkinci sorguda, – user1874594
kompozit kablosunun dış birleşimlerini bıraktım, ikinci Q, 1. – user1874594
@ user1874594'e eşdeğer hale getirmek için 2. Q'ya ekleyebileceğim değişiklikler oldu: Q2 ile aynı sonucu elde etmek için Q2'yi değiştiremezsiniz (ve hatta Inner birleşmesi için, yeniden yazmanız aynı sonucu döndürmeyebilir) – dnoeth