Simplify queries, WITH keyword
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 49 / 72.
Sorgular, birçok iç sorgu ekleyerek çok karmaşık hale gelebilir. Örneğin, burada birçok alt sorguya sahip 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
)
)Bunu kolaylaştırmak için WITH query_name AS (...) anahtar kelimesini kullanabiliriz. Bu, bir sorguyu bir adla kaydedip 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 query2 AND col4 IN query1Burada query1'i query2'de ve ana sorguda yeniden kullandık.
Görev
KolayMevcut 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>
şöyle bir sorgu yazın:
- İlk olarak "büyük cihazlar"ı belirler (
width'i 200'den büyük cihazlar) - Sonra bu büyük cihazlar için ortalama puanı hesaplar. Bu sütunu
average_scoreolarak adlandırın
Bu sorunu çözmek için WITH yan tümcesini kullanın.
Kopya kağıdı
WITH query_name AS (...) kullanarak yeniden kullanılabilir adlandırılmış alt sorgular oluşturun:
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 query2 AND col4 IN query1Bu yaklaşım, birden fazla alt sorgu içeren karmaşık sorguları daha okunabilir hale getirir ve aynı alt sorguyu birden fazla kez yeniden kullanmaya izin verir.
Kendin dene
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 Contractor