The nobel table can be used to practice more SUM and COUNT functions./ja
Jump to navigation
Jump to search
Language: | English • 日本語 • 中文 |
---|
ノーベル賞: 集計関数
このチュートリアルは COUNT
や
SUM
や AVG
のような集計関数に関するものである。
練習
参照 MAX, AVG, DISTINCT と ORDER BY
全受賞者数を表示する
SELECT COUNT(winner) FROM nobel
SELECT COUNT(winner) FROM nobel
各分野subject
が1回だけ登場するリストを表示する
SELECT DISTINCT subject FROM nobel
物理学賞Physicsの受賞トータル数を表示する
nobel(yr, subject, winner)
SELECT COUNT(subject) FROM nobel
WHERE subject='Physics'
こちらを参照 Using GROUP BY and HAVING./ja
各分野ごとに分野と受賞数を表示する
nobel(yr,subject, winner)
SELECT subject, COUNT(winner)
FROM nobel
GROUP BY subject
各分野の初受賞の年を表示する
nobel(yr, subject, winner)
SELECT subject, MIN(yr)
FROM nobel
GROUP BY subject
2000年の各分野の受賞数を表示する
nobel(yr, subject, winner)
SELECT subject,COUNT(yr)
FROM nobel
WHERE yr=2000
GROUP BY subject
こちらを参照 aggregates with DISTINCT/ja.
各分野の異なる受賞者の人数を表示する(同一人物の複数回受賞は1名と数える)
nobel(yr, subject, winner)
SELECT subject,COUNT(DISTINCT winner)
FROM nobel
GROUP BY subject
各分野に何年間受賞者がいたか表示する
nobel(yr, subject, winner)
SELECT subject,COUNT(DISTINCT yr)
FROM nobel
GROUP BY subject
HAVINGを使う。
物理学賞Physicsが3人の年を表示する
nobel(yr, subject, winner)
SELECT yr
FROM nobel
WHERE subject='Physics'
GROUP BY yr
HAVING COUNT(winner)=3
受賞回数が2回以上の受賞者を表示する
nobel(yr, subject, winner)
SELECT winner
FROM nobel
GROUP BY winner
HAVING COUNT(yr) > 1
複数の分野で受賞した人を表示する
nobel(yr, subject, winner)
SELECT winner
FROM nobel
GROUP BY winner
HAVING COUNT(DISTINCT subject)>1
GROUP BY yr, subjectの問題
2000年以降で受賞者が3人いる分野の年と分野を表示する(訳注:GROUP BYは並び順に影響することに注意)
nobel(yr, subject, winner)
SELECT yr,subject
FROM nobel
WHERE yr>=2000
GROUP BY yr,subject
HAVING COUNT(winner)=3