PostgreSQL

PostgreSQL ARRAY_AGG İşlevi Nasıl Kullanılır?

PostgreSQL ARRAY_AGG İşlevi Nasıl Kullanılır?
ARRAY_AGG() toplama yöntemi, PostgreSQL'de kullanılan, birkaç giriş değeri alan ve bunları NULL değerler de dahil olmak üzere bir dizide birleştiren yöntemlerden biridir. Giriş grubundaki her değeri bir parça olarak içeren bir dizi döndürür. Sonuç kümesini PostgreSQL ARRAY_AGG işlevi aracılığıyla sıralamak için ORDER BY ifadesini kullanacaksınız. Gerektiğinde WHERE yan tümcesini de kullanabilirsiniz.

Toplama ARRAY_Agg() yöntemini anlamak için birkaç örnek gerçekleştirmeniz gerekir. Bu amaçla, PostgreSQL komut satırı kabuğunu açın. Diğer Sunucuyu açmak istiyorsanız, adını vererek bunu yapın. Aksi takdirde, alanı boş bırakın ve Veritabanına atlamak için Enter düğmesine basın. Varsayılan veritabanını kullanmak istiyorsanız, e.g., Postgres, ardından olduğu gibi bırakın ve Enter tuşuna basın; aksi takdirde, bir veritabanının adını yazın, e.g., Aşağıdaki resimde gösterildiği gibi "test". Başka bir bağlantı noktası kullanmak istiyorsanız, yazın, aksi takdirde olduğu gibi bırakın ve devam etmek için Enter'a dokunun. Başka bir kullanıcı adına geçmek istiyorsanız kullanıcı adını eklemenizi isteyecektir. İsterseniz kullanıcı adını ekleyin, aksi takdirde "Enter" tuşuna basın. Sonunda, belirli bir kullanıcıyı aşağıdaki gibi kullanarak komut satırını kullanmaya başlamak için mevcut kullanıcı şifrenizi sağlamanız gerekir. Gerekli tüm bilgilerin başarılı bir şekilde girilmesinden sonra, gitmekte fayda var.

ARRAY_AGG'nin Tek Sütun Üzerinde Kullanımı:

Üç sütunlu “test” veritabanındaki “kişi” tablosunu düşünün; "kimlik", "ad" ve "yaş". "id" sütunu tüm kişilerin kimliklerini içerir. 'Ad' alanı kişilerin adlarını ve 'yaş' sütunu tüm kişilerin yaşlarını içerirken.

>> SEÇİM * KİŞİDEN;

Tepe tablosuna bağlı olarak, tablonun tüm adlarının dizi listesini “name” sütunu aracılığıyla döndürmek için toplama ARRAY_AGG yöntemini uygulamamız gerekir. Bununla, sonucu bir dizi biçiminde almak için SELECT sorgusunda ARRAY_AGG() işlevini kullanmanız gerekir. Komut kabuğunuzda belirtilen sorguyu deneyin ve sonucu alın. Gördüğünüz gibi, aynı sorgu için bir dizide listelenen adlara sahip aşağıdaki “array_agg” çıktı sütunumuz var.

>> KİŞİDEN ARRAY_AGG(ad) SEÇİN;

ARRAY_AGG'nin ORDER BY Cümlesi ile Birden Çok Sütun Üzerinde Kullanımı:

Örnek 01:

ORDER BY yan tümcesini kullanırken ARRAY_AGG işlevini birden çok sütuna uygulamak, üç sütunlu "test" veritabanındaki aynı "kişi" tablosunu düşünün; "kimlik", "ad" ve "yaş". Bu örnekte, GROUP BY yan tümcesini kullanacağız.

>> SEÇİM * KİŞİDEN;

“Ad” ve “yaş” sütunlarını kullanırken SELECT sorgu sonucunu bir dizi listesinde birleştiriyoruz. Bu örnekte, şimdiye kadar bu sütunların her ikisini de birleştirmek için kullanılan özel bir karakter olarak boşluk kullanıyoruz. Öte yandan, "id" sütununu ayrı ayrı alıyoruz. Birleştirilmiş dizi sonucu, çalışma zamanında bir "persondata" sütununda gösterilecektir. Sonuç kümesi önce kişinin "id"sine göre gruplandırılacak ve "id" alanının artan düzeninde sıralanacaktır. Aşağıdaki komutu kabukta deneyelim ve sonuçları kendiniz görelim. Aşağıdaki resimde her ad-yaş birleştirilmiş değer için ayrı bir dizimiz olduğunu görebilirsiniz.

>> SELECT id, ARRAY_AGG (isim ||"|| yaş) kişi verisi olarak FROM person GROUP BY id ORDER BY id;



Örnek 02:

Beş sütunlu “test” veritabanında yeni oluşturulan bir “Çalışan” tablosunu düşünün; "kimlik", "ad", "maaş", "yaş" ve "e-posta". Tablo, bir şirkette çalışan 5 Çalışanla ilgili tüm verileri depolar. Bu örnekte, GROUP BY ve ORDER BY yan tümcelerini kullanırken boşluk kullanmak yerine iki alanı birleştirmek için '-' özel karakterini kullanacağız.

>> Çalışandan * SEÇİN;

Bir dizide “name” ve “email” olmak üzere iki sütunun verilerini, aralarında '-' kullanarak birleştiriyoruz. Daha önce olduğu gibi, "id" sütununu belirgin bir şekilde çıkarıyoruz. Birleştirilmiş sütun sonuçları, çalışma zamanında "emp" olarak gösterilecektir. Sonuç seti önce kişinin “id”sine göre oluşturulacak ve daha sonra “id” sütununun artan sırasına göre düzenlenecektir. Küçük değişikliklerle kabukta çok benzer bir komut deneyelim ve sonuçlarını görelim. Aşağıdaki sonuçtan, her değerde '-' işareti kullanılırken, resimde gösterilen her ad-e-posta birleştirilmiş değeri için ayrı bir dizi elde ettiniz.

>> SELECT id, ARRAY_AGG (isim || '-' || e-posta) emp AS FROM Çalışan GROUP BY id SİPARİŞ BY id;

ARRAY_AGG'nin ORDER BY Cümlesi Olmadan Birden Çok Sütun Üzerinde Kullanımı:

ARRAY_AGG yöntemini ORDER BY ve GROUP BY yan tümcelerini kullanmadan da herhangi bir tabloda deneyebilirsiniz. Eski veritabanınızdaki “test”te yeni oluşturulmuş bir “aktör” tablosunu üç sütuna sahip olduğunu varsayalım; "id", "fname" ve "lname". Tablo, aktörlerin adları ve soyadları ile kimlikleriyle ilgili verileri içerir.

>> aktörden * SEÇİN;

Bu nedenle, son iki örnekte yaptığınız gibi, aralarında boşluk bırakarak bir dizi listesindeki iki “fname” ve “lname” sütununu birleştirin. 'id' sütununu belirgin bir şekilde çıkarmadık ve SELECT sorgusunda ARRAY_AGG işlevini kullanıyoruz. Ortaya çıkan dizi birleştirilmiş sütun "aktörler" olarak sunulacak. Komut kabuğunda aşağıda belirtilen sorguyu deneyin ve elde edilen diziye bir göz atın. Sonuçtan virgülle ayrılmış, ad-e-posta birleştirilmiş değeri sunulan tek bir dizi getirdik.

Sonuç:

Son olarak, ARRAY_AGG toplama yöntemini anlamak için gereken örneklerin çoğunu çalıştırmayı neredeyse bitirdiniz. Daha iyi anlamak ve bilgi edinmek için sonunda bunlardan daha fazlasını deneyin.

Linux'ta Fare Tıklamalarını ve Tuş Vuruşlarını Teşvik Etmek İçin Xdotool Nasıl Kullanılır?
Xdotool, fare tıklamalarını ve tuş vuruşlarını simüle etmek için ücretsiz ve açık kaynaklı bir komut satırı aracıdır. Bu makale, klavye ve fare girişl...
Linux için En İyi 5 Ergonomik Bilgisayar Faresi Ürünleri
Uzun süreli bilgisayar kullanımı bileğinizde veya parmaklarınızda ağrıya neden olur mu?? Sert eklemlerden muzdarip misiniz ve sürekli ellerinizi sıkma...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...