PivotTable, kalıpları ve eğilimleri daha kolay bulmak için verileri tahmin etmek, toplamak ve gözden geçirmek için güçlü bir araçtır. Pivot tablolar, veri ilişkilerini ve bağımlılıklarını gerçekten anlamak için bir veri kümesindeki verileri gruplandırmak, sıralamak, organize etmek, yeniden düzenlemek, gruplandırmak, gruplamak veya merkezlemek için kullanılabilir. Pivot tabloyu örnek olarak kullanmak, bu yöntemin nasıl çalıştığını göstermenin en kolay yoludur. PostgreSQL 8.3 birkaç yıl önce yayınlandı ve yeni sürümü ‘ olarak adlandırıldı.tablo işlevikatma. tablo işlevi Tablolarla (yani birden çok satır) sonuçlanan birkaç yöntem içeren bir bileşendir. Bu değişiklik bazı oldukça harika özelliklerle birlikte geliyor. Pivot tablolar oluşturmak için kullanılacak tablo yöntemi bunlardan biridir. Tartışmalı yöntem, metinsel bir bağımsız değişken alır: ilk sırada ham verileri ve sonraki sırada bir tablo döndüren bir SQL komutu.
Tablosuz PivotTable örneği
“tablefunc” modülünü kullanarak PostgreSQL rotasyonu üzerinde çalışmaya başlamak için, onsuz bir pivot tablo oluşturmayı denemelisiniz. Öyleyse PostgreSQL komut satırı kabuğunu açalım ve gerekli sunucu, veritabanı, port numarası, kullanıcı adı ve şifre için parametre değerlerini sağlayalım. Belirtilen varsayılan parametreleri kullanmak istiyorsanız, bu parametreleri boş bırakın.
Aşağıda gösterildiği gibi, içinde bazı alanlar bulunan Test veritabanında Test adlı yeni bir tablo oluşturacağız.
>>Yapmak veya yaratmakMasa Ölçek(Kimlik Kartı intVe İsim Varşar(20)Ve Diye sordu intVe bir görev Varşar(20));
Tabloyu oluşturduktan sonra sıra aşağıdaki sorguda gösterildiği gibi tabloya bazı değerler eklemeye geliyor.
>>Akrepiçeri Ölçek (Kimlik KartıVe İsimVe Diye sorduVe bir görev)Değer(11VeAXAVe45.000Ve‘yazar’)Ve(11VeAXAVe48.000Ve‘Takip et’)Ve(11VeAXAVe50.000Ve“Doktor”)Ve(12Ve‘razı olmak’Ve40.000Ve‘Takip et’)Ve(11Ve‘razı olmak’Ve60.000Ve“Doktor”)Ve(12Ve‘razı olmak’Ve67.000Ve‘Takip et’)Ve(13Ve‘dedi’Ve85.000Ve‘yazar’)Ve(13Ve‘dedi’Ve69.000Ve‘Takip et’)Ve(13Ve‘dedi’Ve90.000Ve“Doktor”);
İlgili verilerin başarıyla eklendiğini görebilirsiniz. Bu tablonun id, name ve function için 1’den fazla aynı değere sahip olduğunu görebilirsiniz.
>>Seçmek*İtibaren kayıt olmak;
Aşağıdaki sorguyu kullanarak “test” tablosunun kaydını özetlemek için bir pivot tablo oluşturalım. Komut, aynı verilerin Maaş sütun değerlerini ID ve Name ile toplarken, ID ve Name ile aynı sütun değerlerini tek satırda toplar. Ayrıca, belirli bir değerler kümesinde bir değerin kaç kez geçtiğini de söyler.
>>Seçmek Kimlik KartıVe İsimVetoplam(Diye sordu) Diye sorduVetoplam((bir görev =“Doktor”)::int) doktorVetoplam((bir görev =‘yazar’)::int) yazarVetoplam((bir görev =‘Takip et’)::int)“Takip et”İtibaren Ölçek gruba göre Kimlik KartıVe İsim;
TableFunc ile PivotTable örneği:
Ana noktamızı gerçek dünya perspektifinden açıklayarak başlayacağız ve ardından en sevdiğimiz adımlarda pivot tablo oluşturma sürecini açıklayacağız. Bu nedenle, eksen üzerinde çalışmak için önce üç tablo eklemelisiniz. Oluşturacağımız ilk tablo, makyajın temelleri hakkında bilgi depolayacak olan “Makyaj” tablosudur. Bu tabloyu oluşturmak için komut satırında aşağıdaki sorguyu deneyin.
>>Yapmak veya yaratmakMasaeğerölümsüzlük evet makyaj(make_id intbirincil anahtarVe p_name Farkar(100)ölümsüzlükboş);
“Makyaj” tablosunu oluşturduktan sonra ona bazı kayıtlar ekleyelim. Bu tabloya 10 kayıt eklemek için kabukta aşağıdaki sorguyu çalıştıracağız.
Bu ürünleri kullanan kullanıcıların kayıtlarının tutulacağı ‘Users’ adlı başka bir tablo oluşturmamız gerekiyor. Bu tabloyu oluşturmak için aşağıda belirtilen sorguyu Shell’de yürütün.
>>Yapmak veya yaratmakMasaeğerölümsüzlük EXISTS kullanıcı(Kullanıcı kimliği intbirincil anahtarVe Adınız Varşar(100)ölümsüzlükboş);
Users tablosuna aşağıdaki görseldeki gibi 20 adet kayıt ekledik.
‘Makeup’ ve ‘users’ tablosunun karşılıklı kayıtlarını tutacak ‘makeup_user’ adlı başka bir tablomuz var. Ürünün fiyatını sağlayacak başka bir alan olan ‘Fiyat’ vardır. Tablo aşağıdaki sorgu kullanılarak oluşturulmuştur.
>>Yapmak veya yaratmakMasaeğerölümsüzlük makyaj_kullanıcısı VAR( Kimlik Kartı intbirincil anahtarVeOrtalamaintölümsüzlükboşyorumcu Makyaj yapmak(make_id)Ve Kullanıcı kimliği intölümsüzlükboşyorumcu kullanıcılar(Kullanıcı kimliği)Ve Fiat Ondalık sayı(18Ve2));
Bu tabloya resimde görüldüğü gibi toplam 56 kayıt ekledik.
Pivot tablo oluşturmak için kullanılacak başka bir görünüm oluşturalım. Bu görünüm, üç tablonun birincil anahtar sütununun değerlerini eşleştirmek ve Müşteriler tablosundan ürünün Adını, Ürün_Adı ve Maliyetini almak için INNER JOIN’i kullanır.
>>Yapmak veya yaratmakToplantı v_ Makeup_users yanSeçmek c. u_adıVe p.p_adıVe bilgisayar fiyatı İtibaren kullanıcılar İçmekkatılmak PC için makyaj_kullanıcısı üzerine c. Kullanıcı kimliği = bilgisayar. Kullanıcı kimliği İçmekkatılmak makyaj üzerine bilgisayar.Ortalama= s;
Kullanmak için öncelikle kullanmak istediğiniz veritabanı için tablefunc paketini kurmalısınız. Bu paket, PostgreSQL 9.1’de yerleşiktir ve ardından aşağıda belirtilen komut çalıştırılarak dağıtılır. Tablefunc paketi artık sizin için etkinleştirilmiştir.
>>Yapmak veya yaratmak ilave eğerölümsüzlük Zamanlama işlevi mevcut;
Uzantıyı oluşturduktan sonra, bir pivot tablo oluşturmak için Crosstab() işlevini kullanma zamanı. Bunu yapmak için, kabuk komut satırında aşağıdaki sorguyu kullanacağız. Bu sorgu ilk önce kaydı yeni oluşturulan Görünümden getirir. Bu kayıtlar artan ‘u_name’ ve ‘p_name’ sütunlarına göre sıralanacak ve gruplandırılacaktır. Satın alan her müşterimiz için kozmetiklerin isimlerini ve satın alınan ürünlerin toplam fiyatlarını tabloda listeledik. Müşteri tarafından satın alınan tüm ürünleri tek tek gruplamak için “p_name” sütununa UNION ALL operatörünü uyguladık. Bu, kullanıcının satın aldığı ürünlerin tüm maliyetlerini tek bir değere ekleyecektir.
Pivot tablomuz hazırlanmış ve görselde gösterilmiştir. Belirli bir ürünü satın almadıkları için her p_name altındaki bazı sütun alanlarının boş olduğunu açıkça görebilirsiniz.
Çözüm:
Artık Tablefunc paketi olan ve olmayan tabloların sonuçlarını özetlemek için bir pivot tablo oluşturmayı öğrendik.
Diğer gönderilerimize göz at
[wpcin-random-posts]
İlk Yorumu Siz Yapın