Using GROUP BY and HAVING./ja
From SQLZoo
Language: | English • 日本語 |
---|
世界の国のプロフィール
GROUP BY
と HAVING
GROUP BY
節で SUM
や COUNT
のような集計関数を使うと、それぞれのグループに共通の値になる。
GROUP BY continent
を指定すると、異なる値のcontinent
が1行づつ表示される。
continent
以外のすべての列(フィールド)は SUM
や COUNT
などの集計関数で1行にまとめる必要がある。
HAVING
節(の条件)は表示するグループを取り除く。
WHERE
節(の条件)は行(レコード)を集計する前に取り除く。
HAVING
節は集計後(の結果を使って)、取り除く。
ORDER BY
節がある場合、該当する場所の列(フィールド)を参照して並べ替える。
各大陸の国を表示する:
world(name, continent, area, population, gdp)
SELECT continent, COUNT(name)
FROM world
GROUP BY continent
SELECT continent, COUNT(name)
FROM world
GROUP BY continent
各大陸の総人口を表示する:
world(name, continent, area, population, gdp)
SELECT continent, SUM(population)
FROM world
GROUP BY continent
SELECT continent, SUM(population)
FROM world
GROUP BY continent
WHERE と GROUP BY
WHERE は集計関数が働く前にレコードを取り除く。
最低でも200000000人の人口の国の数を関連する大陸ごとに表示する。
SELECT continent, COUNT(name)
FROM world
WHERE population>200000000
GROUP BY continent
SELECT continent, COUNT(name)
FROM world
WHERE population>200000000
GROUP BY continent
GROUP BY と HAVING
HAVING 節は GROUP BY の後でチェックされる。
集計結果をHAVING 節でチェックできる。 . 総人口が500000000人より大きな大陸を総人口と共に表示する。 .
SELECT continent, SUM(population)
FROM world
GROUP BY continent
HAVING SUM(population)>500000000
SELECT continent, SUM(population)
FROM world
GROUP BY continent
HAVING SUM(population)>500000000