私はkhanacademyのSQLコースをやっており、私はthisデータセットで遊んでいます。列ランク(主キー)、国、人口などが含まれます。グローバルな人口の平均に近い国を選択したいと思います。世界人口平均が30mの場合、20〜40mの人口を持つ国を選択したいと考えています。人口が平均に近い国を選択してください
今、私はいくつかのことを試みましたが、うまくいきませんでした。 This questionは似ている、と私はこのような答え変更しようとした。しかし
SELECT a.country, a.population, b.max_pop
FROM countries_by_population a
INNER JOIN (
SELECT rank, MAX(population) as max_pop
FROM countries_by_population
GROUP BY rank
) b ON a.rank = b.rank
WHERE a.population > b.max_pop*0.9;
、すべての行を返し、max_popはこの国のためだけの集団です。私は別のところで働いていないので、テーブルに自分自身を参加させるより簡単な解決策があるはずです。それは何ですか?