Bunu anlamama yardımcı olun: Soru 3a ("Her bir bölgedeki en büyük ülkeyi bul") için sqlzoo öğreticide, iç içe geçmiş SELECT ifadesine "VE popülasyon> 0" eklenmesi neden bu kadar doğru?SQL: Yinelenen WHERE yan tümcesi belirten sütun> 0?
5
A
cevap
2
nedeni:
WHERE population >= ALL (SELECT population
FROM ...)
:
AND population > 0
... zorlaştırmaktadır bölge "Avrupa", adı "Vatikan", null satır filtreleyerek edilir. ..NULL bir değer değil, bu yüzden Rusya düzgün bir şekilde sıralanmayacak. TÜM operatör değeri TÜM değerleri NULL orada varken asla olamaz alt sorgu, dönen büyük veya eşit olacak şekilde karşılaştırarak gerektirir.
Benim sorgu olurdu ya:
SELECT region, name, population
FROM bbc x
WHERE population = (SELECT MAX(population)
FROM bbc y
WHERE y.region = x.region)
... veya kullanan bir JOIN:
SELECT x.region, x.name, x.population
FROM bbc x
JOIN (SELECT y.region,
MAX(y.population) AS max_pop
FROM bbc y
GROUP BY y.region) z ON z.region = x.region
AND z.max_pop = x.population
0
Hayır öyle değil. En büyük ülke, önceden bilinen bir popülasyona sahip değildir.
En büyük kitabın içinde herhangi bir sayfa olup olmadığını kontrol etmek gibi bir şey.
İlgili konular
- 1. WHERE yan tümcesi ile SQL LIMIT
- 2. Query WHERE IN yan tümcesi çalışmadı
- 3. CASE deyimiyle koşullu WHERE yan tümcesi Oracle'da
- 4. SQL İç Bağlantı. ON koşulu vs WHERE yan tümcesi
- 5. MySQL FROM yan tümcesi
- 6. ActiveAndroid "in" yan tümcesi
- 7. # 1093 Hatası - FROM yan tümcesi
- 8. ORACLE SQL Server'da yan tümcesi eşdeğeriyle bağlan
- 9. WHERE yan tümcesi ve '?' Nasıl biçimlendirilir SQLite sorgusunda mı?
- 10. 'WHERE' yan tümcesi SQL'de farklı bir değere nasıl geri dönülür?
- 11. Cassandra - birincil anahtar olmayan dezavantajları olan WHERE yan tümcesi
- 12. CASE'de bir koşul koymak .. NEDEN WHERE yan tümcesi?
- 13. Bir T-SQL koşullu TOP yan tümcesi mümkün mü?
- 14. Bir ON yan tümcesi
- 15. WITH yan tümcesi, bir
- 16. WHERE yan tümcesinde LIKE ve NULL SQL
- 17. EXCEPT yan tümcesi için erişim yedeği
- 18. Linq ve IN yan tümcesi
- 19. T-SQL - En uygun olmayan plan kullanılır - WHERE yan tümcesi kısa dönemli olmalıdır
- 20. MySQL'i, JOINT/UNION kullanmadan WHERE IN yan tümcesi kopyalarını döndürmek için zorla?
- 21. MATCH yan tümcesi, bir WHERE yan tümcesine sahip filtreleme özellikleri veya MATCH ile mi?
- 22. Ruby Activerecord IN yan tümcesi
- 23. Alt sorgudaki SQL Server ORDER BY yan tümcesi
- 24. DIŞ JOIN sonucu eksik satır yok, WHERE yan tümcesi (Geçici çözüm bulundu)
- 25. bir agrega (SQL Sunucu Hatası) WHERE yan tümcesinde görünmeyebilir
- 26. igraph icerisindeki VEYA yan tümcesi seç
- 27. codeigniter içinde nerede bir yan tümcesi
- 28. Sütun IN yan tümcesinde yok, ancak SQL
- 29. LINQ çoktan çoğa ilişkisi, doğru bir WHERE yan tümcesi nasıl yazılır?
- 30. IF ... WHERE yan tümcesinde ELSE MySQL
OH, bu nedenle Avrupa NULL nüfus değerlerine sahip tek bölgedir. Anladım. – Hamster
@Hamster: Evet, aksi halde başka bölgelerin de düştüğünü gördünüz. ALL işleci, karşılaştırmakta olduğunuz değerin alt sorgudan döndürülen değerlere TÜM değerlere eşit veya daha büyük olmasını gerektirir; bu, orada bir NULL olduğunda asla gerçekleşemez. –
Ayrıca, NOT NULL seçeneği de var mı? Bu belki daha mantıklı olurdu. – Hamster