This page looks best with JavaScript enabled

【SQL】ちょいちょい

 ·  ☕ 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

aiandrox
Written by
aiandrox
今日も楽しく明日も楽しく

目次