SELECT チュートリアル内で SQLZoo の SELECT の質問 5 を試しています。
ヨーロッパのどの国よりもGDPが大きい国は? 【名前だけ教えてください。】
これは私の解決策です。これは正しくありませんが、理由がわかりません。
SELECT name
FROM world
WHERE gdp > ALL (SELECT gdp FROM world WHERE continent ='Europe')
私は間違って何をしていますか?
SELECT チュートリアル内で SQLZoo の SELECT の質問 5 を試しています。
ヨーロッパのどの国よりもGDPが大きい国は? 【名前だけ教えてください。】
これは私の解決策です。これは正しくありませんが、理由がわかりません。
SELECT name
FROM world
WHERE gdp > ALL (SELECT gdp FROM world WHERE continent ='Europe')
私は間違って何をしていますか?
select name, gdp
from world x
where gdp > all (select gdp from world y where continent = "Europe" and gdp > 0)
NULL 値の場合、不明な結果がフェッチされるため、NULL 値のチェックがありませんでした。ref: http://dev.mysql.com/doc/refman/5.5/en/all-subqueries.htmlを参照してください。
クエリをテストしたときに、一部のヨーロッパの国ではワールド テーブルに null 値が含まれている可能性があるため、null 値を回避するためにチェックを入れることをお勧めします。
SELECT name
FROM world
WHERE gdp > (SELECT MAX(gdp) FROM world WHERE continent = 'Europe')
MAX 集計関数を使用すると、外部クエリと比較したいサブクエリから最高の GDP が返されます。
私は質問を連続して行っていましたが、何らかの理由で前の質問からドイツが頭に浮かびました。だから私は私の質問にこれを持っていて、正しい答えを得ました。笑 試してみてください。Chrome を使用しています
select name from world where gdp > ALL( select gdp from world where name='Germany' and Population<>0)
これを試して:
SELECT name FROM world WHERE gdp>= ALL(select gdp from world where continent='europe' and gdp>=0) and continent !='europe'