Simplify queries, WITH keyword
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 49 / 72.
Sorgular, çok sayıda iç sorgu eklenerek çok karmaşık hale gelebilir. Örneğin, işte birçok alt sorgusu olan bir sorgu:
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 isimle kaydetmemize ve onu 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 yapısını query2 içinde ve main sorgusunda tekrar kullandık.
Görev
KolayKullanılabilir tablolar ve sütunlar:
<strong>devices_specs</strong>:<strong>device_id</strong>,<strong>width</strong>,<strong>height</strong>,<strong>num_features</strong>,<strong>opinion</strong><strong>devices_score</strong>:<strong>device_id</strong>,<strong>score</strong>
Şunları yapan bir sorgu yazın:
- İlk olarak "büyük cihazları" (
widthdeğeri 200'den büyük olan cihazlar) tanımlar - Ardından bu büyük cihazlar için ortalama puanı hesaplar. 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 önemsediğiniz cihazları tutan geçici bir sonuç kümesine isim verin
WITH large_devices AS (
SELECT ____
FROM devices_specs
WHERE ____
)
-- Adım 2: o 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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate ContractorKendi başına pratik yap: SQL playground