PostgreSQL

Tablefunc ile/Olmadan Pivot

Tablefunc ile/Olmadan Pivot

Özet Tablo, kalıpları ve eğilimleri daha da kolay bulmak için verileri tahmin etmek, derlemek ve gözden geçirmek için güçlü bir araçtır. Pivot Tablolar, veri ilişkilendirmelerini ve bağımlılıklarını gerçekten anlamak için bir veri kümesindeki verileri toplamak, sıralamak, düzenlemek, yeniden düzenlemek, gruplandırmak, toplamak veya ortalamak için kullanılabilir. Bir 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 piyasaya sürüldü ve ' adlı yeni bir sürümtablo işlevi' eklendi. tablo işlevi tablolar (yani, birden çok satır) veren birkaç yöntem içeren bir bileşendir. Bu değişiklik çok güzel özelliklerle birlikte gelir. Pivot tablolar oluşturmak için kullanılacak çapraz tablo yöntemi de bunlardan biridir. Çapraz tablo yöntemi metinsel bir argüman alır: ilk düzende ham verileri ve sonraki düzende bir tablo döndüren bir SQL komutu.

TableFunc Olmadan Örnek Özet Tablo:

'tablefunc' modülü ile PostgreSQL döndürme üzerinde çalışmaya başlamak için, onsuz bir pivot tablo oluşturmaya çalışmalısınız. Öyleyse PostgreSQL komut satırı kabuğunu açalım ve gerekli sunucu, veritabanı, bağlantı noktası numarası, kullanıcı adı ve şifre için parametre değerlerini sağlayalım. Varsayılan seçili 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' adında yeni bir tablo oluşturacağız.

>> TABLO OLUŞTUR Test(Id int, name varchar(20), sal int, job varchar(20));

Bir tablo oluşturduktan sonra, aşağıdaki sorguda gösterildiği gibi tabloya bazı değerler eklemenin zamanı geldi.

>> INSERT INTO Test (Id, name, sal, job) DEĞERLER (11, 'Aksa', 45000, 'Yazar'), (11, 'Aksa', 48000, 'Memur'), ​​(11, 'Aksa', 50000, 'Doktor'), (12, 'Raza', 40000, 'Memur'), ​​(11, 'Raza', 60000, 'Doktor'), (12, 'Raza', 67000, 'Memur'), ​​( 13, 'Saeed', 85000, 'Yazar'), (13, 'Saeed', 69000, 'Memur'), ​​(13, 'Saeed', 90000, 'Doktor');

İlgili verilerin başarıyla eklendiğini görebilirsiniz. Bu tablonun id, name ve job için 1'den fazla aynı değere sahip olduğunu görebilirsiniz.

>> SEÇ * girişten;

Aşağıdaki sorguyu kullanarak 'Test' tablosunun kaydını özetleyecek bir pivot tablo oluşturalım. Komut, 'Id' ve 'name'ye göre aynı veriler için 'maaş' sütun değerlerinin toplamını alırken, 'Id' ve 'name' sütununun aynı değerlerini bir satırda birleştirir. Ayrıca, belirli bir değer kümesinde bir değerin kaç kez oluştuğunu da söyler.

>> SELECT Id, name, sum(sal) sal, sum((job = 'Doctor')::int) Doctor, sum((job = 'Writer')::int) Writer, sum((iş = 'Memur') ')::int) Kimliğe Göre Test GRUPUNDAN "Memur", isim;

TableFunc ile Örnek Özet Tablo:

Ana noktamızı gerçekçi bir bakış açısıyla açıklayarak başlayacağız ve ardından pivot tablo oluşturma işlemini sevdiğimiz adımlarla açıklayacağız. Yani, her şeyden önce, bir pivot üzerinde çalışmak için üç tablo eklemelisiniz. Oluşturacağımız ilk tablo, makyajın temelleri ile ilgili bilgileri depolayacak olan 'Makyaj' tablosudur. Bu tabloyu oluşturmak için komut satırı kabuğunda aşağıdaki sorguyu deneyin.

>> YOKSA TABLO OLUŞTUR Makyaj(make_Id int BİRİNCİL ANAHTAR, p_name VARCHAR(100) NULL DEĞİL);

'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ı tutacak 'users' adında başka bir tablo oluşturmamız gerekiyor. Bu tabloyu oluşturmak için kabukta aşağıda belirtilen sorguyu yürütün.

>> MEVCUT DEĞİLSE TABLO OLUŞTURUN users(user_id int PRIMARY KEY, u_name varchar(100) NULL DEĞİL);

Aşağıdaki resimde gösterildiği gibi 'users' tablosu için 20 kaydı ekledik.

Hem 'Makyaj' hem de 'kullanıcılar' tablosunun karşılıklı kayıtlarını tutacak başka bir 'makyaj_kullanıcısı' tablomuz var. Ürünün fiyatını kurtaracak başka bir 'fiyat' alanı vardır. Tablo, aşağıda belirtilen sorgu kullanılarak oluşturulmuştur.

>> MEVCUT DEĞİLSE TABLO OLUŞTUR makyaj_user( ID int PRIMARY KEY, Mid int NOT NULL REFERENCES Makeup(make_Id), Uid  int NOT NULL REFERENCES users(user_id), decimal(18,2));

Resimde görüldüğü gibi bu tabloya toplam 56 kayıt ekledik.

Bir pivot tablo oluşturmak için kullanmak üzere daha fazla bir görünüm oluşturalım. Bu görünüm, üç tablonun hepsinin birincil anahtar sütun değerlerini eşleştirmek ve bir 'müşteriler' tablosundan bir ürünün 'ad', 'ürün_adı' ve 'maliyetini' getirmek için INNER Join'i kullanır

>> GÖRÜNÜMÜ OLUŞTUR v_ Makeup_users SELECT c.u_adı, p.p_name, bilgisayar.kullanıcılardan fiyat c INNER JOIN Makeup_user pc ON c.user_id = bilgisayar.Uid INNER JOIN Makeup p ON pc.orta = p.make_Id;

Bunu kullanmak için önce kullanmak istediğiniz veritabanı için tablefunc paketini kurmanız gerekir. Bu paket yerleşik PostgreSQL 9'dur.1 ve daha sonra aşağıda belirtilen komutu çalıştırarak yayınlandı. Tablefunc paketi şimdi sizin için etkinleştirildi.

>> MEVCUT DEĞİLSE UZANTI OLUŞTURUN tablefunc;

Uzantıyı oluşturduktan sonra, bir pivot tablo oluşturmak için Crosstab() işlevini kullanma zamanı. Bunu yapmak için komut satırı kabuğunda aşağıdaki sorguyu kullanacağız. Bu sorgu ilk önce yeni oluşturulan 'Görünüm'den kaydı getiriyor. Bu kayıtlar, artan 'u_name' ve 'p_name' sütunlarına göre sıralanacak ve gruplandırılacaktır. Satın aldıkları her müşteri için makyaj isimlerini ve satın alınan ürünlerin toplam maliyetini tabloda listeledik. Bir müşteri tarafından satın alınan tüm ürünleri ayrı ayrı toplamak için UNION ALL operatörünü 'p_name' sütununa uyguladık. Bu, bir kullanıcı tarafından satın alınan ürünlerin tüm maliyetlerini tek bir değerde toplayacaktır.

Pivot tablomuz hazır hale getirildi ve görselde görüntülendi. Belirli bir ürünü satın almadıkları için her p_namenin altında bazı sütun alanlarının boş olduğunu açıkça görebilirsiniz.

Sonuç:

Şimdi, Tablefunc paketini kullanarak ve kullanmadan tabloların sonuçlarını özetlemek için bir pivot tablonun nasıl oluşturulacağını zekice öğrendik.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...