This page looks best with JavaScript enabled
⚠️

【SQL】GROUP BYをしたときのSELECT

 ·   ·  ☕ 1 分で読めます
✏️

GROUP BYをしたときのSELECT

お題「各大陸のもっとも面積が大きな国の国名と大陸名、面積を表示する。」

1
2
3
SELECT name, MAX(area)
FROM world
GROUP BY continent
1
2
3
SELECT continent, MAX(area)
FROM world
GROUP BY continent

なぜnameをSELECTできないのか?

GROUP BYでくくることで、大陸名が同じデータを並べたテーブルが作られる。
一つの大陸名に対し一つのレコードしか表示できないため、nameを指定されても困る。
MAX(area)のように、グループの中で一つのレコードに絞り込んだカラムは大丈夫。

SELECT name, MAX(area)はMAX(area)のと対応したnameを返すわけではない。

Using GROUP BY and HAVING./ja - SQLZOO

Share on

END
END
@aiandrox

 
目次