Sorguları Basitleştirme, WITH Anahtar Sözcüğü
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 49 / 72.
Çok sayıda iç sorgu eklemek, sorguları fazla karmaşık hâle getirebilir. Örneğin, burada birçok alt sorgu içeren bir sorgu var:
SELECT * FROM table1
WHERE col2 IN (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
)
)İşi kolaylaştırmak için WITH query_name AS (...) anahtar sözcüğünü kullanabiliriz. Bu, bir sorguyu bir adla kaydetmemize ve istediğimiz yerde kullanmamıza olanak tanır:
WITH query1 AS (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
), query2 AS (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN query1
)
SELECT * FROM table1
WHERE col2 IN (SELECT col1 FROM query2) AND col4 IN (SELECT col5 FROM query1)Burada query1'i query2'de ve ana sorguda yeniden kullandık.
Görev
KolayKullanılabilir tablolar ve sütunlar:
devices_specs:device_id,width,height,num_features,opiniondevices_score:device_id,score
şunları yapan bir sorgu yazın:
- Öncelikle "büyük cihazları" (
widthdeğeri 200'den büyük olan cihazları) belirleyin - Ardından bu büyük cihazların ortalama puanını hesaplayın. Bu sütunu
average_scoreolarak adlandırın
Bu problemi çözmek için WITH yan tümcesini kullanın.
Kendin dene
-- Adım 1: yalnızca ilgilendiğiniz cihazları tutan geçici bir sonuç kümesi adlandırın
WITH large_devices AS (
SELECT ____
FROM devices_specs
WHERE ____
)
-- Adım 2: bu geçici sonuç kümesini ana sorgunun içinde yeniden kullanın
SELECT ____ AS average_score
FROM devices_score
WHERE device_id IN (____);Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Daha Fazla Anahtar Sözcük
IN anahtar sözcüğüBETWEEN anahtar sözcüğüLIKE anahtar sözcüğüAS anahtar sözcüğüTekrar - Cep Telefonu Modelleri2Koşullar
Koşulların TemelleriAND Anahtar SözcüğüOR Anahtar SözcüğüNOT Anahtar SözcüğüBirden Çok Koşulu BirleştirmeParantezlerBoolean Değerler3Belirli Döndürme Biçimi
Null değerlerSonuçları Sıralama 1. BölümSonuçları Sıralama 2. BölümTekrar - Siber Güvenlik FirmasıKayıt Sayısını SınırlamaTekrar - Araç Fabrikası6Giriş Alıştırmaları
Tekrar - Parlamento SeçimiTekrar - Polisin Suçluyu TutuklamasıTekrar - Bar İçecek KabıTekrar - Mühendis Yeni Sütunlar9Birden Çok Tablo
Temel JOIN Bölüm 1Temel JOIN Bölüm 2Tekrar - JOINKendine JOINTekrar - Kendine JOINUNIONSorguları Basitleştirme, WITH Anahtar SözcüğüTekrar - WITH SorgularıTekrar - Gayrimenkul Müteahhidi12Pencere Fonksiyonları 2. Bölüm
RANK ve DENSE_RANK FonksiyonlarıTekrar - RANK ve DENSE_RANKNTILE FonksiyonuToplama FonksiyonlarıROWS ve RANGE ÖlçütüKendi başına pratik yap: SQL playground