2016-04-01 11 views
0

Bazı sütunlara göre çiftleri nasıl buluyorsunuz ve benzer olmayan değerler alıyorsunuz ve bunları bir satıra ekliyorsunuz. Oracle Sql çiftleri bulmak ve bu satırda pivotlamak için sütun değerini seçmek

Temelde

Last Name, House Number, Name, hobby 
Scott,  100,   Peter, chess 
Scott,  100,   John, scrabble 

şimdi geçici bir tablo oluşturun ve bu

Last Name, House Number, Name, Name2, hobby 
Scott,  100,   Peter, John, chess 

Not yapmak istiyorum: veritabanında ikiden fazla isim var olabilir. Ama sadece satranç/scrabble hobi çiftini istiyoruz. Geçici tablonun sadece bir hobisi olmalı (ilk isimle ilişkili fakat önemli değil) diğeri çıkarılabilir. ilerlemek için yaklaşık 100 milyon kayıt olabilir bu

Bu tablo yapmanın en etkili yolu nedir

. (Tarihe göre endekslenir ve her tarih 100 milyon kayıt olabilir). Pivotun işe yarayabileceğini hissediyorum ama belki çok pahalı?

+0

İlgilendiğiniz iki ad var mı? Bir tablonun belirli sütunları olması gerekir. –

cevap

0
select coalesce(t1.LastName, t2.LastName), 
     coalesce(t1.HouseNumber, t2.HouseNumber), 
     t1.Name, t2.Name, coalesce(t1.hobby, t2.hobby) 
from (select * from tablename where hobby = 'chess') t1 
full outer join 
    (select * from tablename where hobby = 'scrabble') t2 
    using (LastName,HouseNumber) 
İlgili konular