Araç setinize eklemek için üç SQL Tekniği

Dec 30 2022
IMHO SQL, veri mühendisleri, bilim adamları ve analistlerin geliştirmesi gereken en önemli teknik becerilerden biridir. SQL sorgularını mükemmelleştirmek ve daha sonra bunları yorumlamak için sayısız saat harcadım.
DALL-E Üretimli Sprey Boya Sanatı

IMHO SQL, veri mühendisleri, bilim adamları ve analistlerin geliştirmesi gereken en önemli teknik becerilerden biridir. SQL sorgularını mükemmelleştirmek ve daha sonra bunları yorumlamak için sayısız saat harcadım. SQL'i öğrenmesi kolay olsa da, dik bir eğri olduğunu ve çoğu zaman tek bir görevi yapmanın birçok yolu olduğunu buldum. İşte okunabilir SQL sorguları yazarken kullanacağım tekniklerimden üçü .

Açıklamalı

Bir veri mühendisi olarak, SQL'de çalışan birçok genç veri uzmanının WITH deyimine aşina olmadığını öğrenince şaşırdım. WITH deyimi, karmaşık sorguları alt sorgularla düzenleyerek bunların okunmasını kolaylaştıran bir yöntemdir. Birçok durumda yararlı olabilecek ara sorgu sonuçlarını depolamak için bir yol sağlar. Pratik olarak konuşursak, her bir alt sorguyu tanımlar ve ona bir ad verirsiniz. Ardından, tüm bu adlandırılmış alt sorguları basitleştirilmiş nihai bir seçim ifadesinde çağırırsınız. Bir WITH deyimi kullanmak, birçok yönden sorgulayacağınız geçici tablolar oluşturmanıza olanak tanır. Aşağıdaki temel örnekte, bir WITH ifadesinin nasıl yapılandırıldığını görebilirsiniz.

WITH 
  t1 AS (SELECT * FROM table1),
  t2 AS (SELECT * FROM table2)
SELECT *
FROM t1 LEFT JOIN t2
ON t1.id = t2.id;

Pencereli İşlevler

Go-to SQL işlevlerimden bir diğeri de pencereli işlevdir. Çoğu zaman değeri bir alt grubun ortalamasıyla karşılaştırmak istiyorum. Bunu yapmanın bir yolu, iki alt sorguya sahip olmak ve bunları birleştirmek veya verileri R/Python'a çekmek ve karşılaştırma yapmaktır. Ancak, bunu pencereli bir işlev kullanarak gerçekleştirebilirsiniz.

Pencereli işlevler, "pencere" adı verilen bir dizi kayıt üzerinde hesaplamalar yapan işlevlerdir. Bir sorgu sonucunu birden çok kategoriye ayırmanıza ve her bölümde hesaplamalar yapmanıza olanak tanırlar.

Örneğin, belirli bir alt küme için ortalama test puanını tek tek veri noktalarıyla karşılaştırmak istiyorsunuz. Pencereli bir işlev kullanarak, tek bir olayı alt gruba (veya bölüme) göre ortalamayla kolayca karşılaştırabilirsiniz. Pencereli işlevler, toplama işlevlerini, sıralama işlevlerini ve ofset işlevlerini içerir. Bu işlevler, bir sorgu içindeki verileri hızlı bir şekilde analiz etmenize ve özetlemenize yardımcı olabilir. Aşağıda, pencereli bir işlev olarak ortalama işlevin sözdizimi bulunmaktadır.

AVG() OVER (PARTITION BY [column_name] ORDER BY [column_name])



Syntax: RANK () OVER (PARTITION BY [column_name] ORDER BY [column_name])

Yayınlamayı Deneyin

Son olarak, TRY_CAST, bir veritabanını veya yeni bir tabloyu ilk kez keşfederken yoğun olarak kullandığım bir işlevdir. TRY_CAST, bir veri türündeki ifadeyi başka bir veri türüne dönüştürmek için kullandığım bir işlevdir. CAST'tan farklı olarak, dönüştürme başarısız olursa bir hata oluşturmaz. Bunun yerine, bir NULL değeri döndürür. TRY_CAST, belirli bir veri türü için geçerli olmayabilecek verileri işlemek için inanılmaz derecede yararlıdır (özellikle tarihlerden bahsediyorum). Genellikle veri bütünlüğünü sağlamak ve kaynağı bilinmeyen verilerle çalışırken beklenmeyen hataları önlemek için kullanılır. Bir projenin veri keşfi aşamasındayken, TRY_CAST kullanmanın özellikle yararlı olduğunu düşünüyorum.

SELECT TRY_CAST(column_name AS data_type)
FROM table_name;

Bu üç SQL tekniği, bir veritabanındaki verilerle çalışırken işinize yarayabilir. Tüm araçlar veya teknikler gibi, iş için doğru araçlar olduklarını anlamanız gerekir.