使用 SUM, Count, MAX, DISTINCT 和 ORDER BY.
1、展示世界的總人口
SELECT SUM(population) FROM world;
2、列出所有的洲份, 每個只有一次。
SELECT DISTINCT(continent) FROM world;
3、找出非洲(Africa)的GDP總和。
SELECT SUM(gdp) FROM world WHERE continent='Africa';
4、有多少個國家具有至少百萬(1000000)的面積。
SELECT COUNT(name) FROM world WHERE area>='1000000';
5、('France','Germany','Spain')(“法國”,“德國”,“西班牙”)的總人口是多少?
SELECT SUM(population) FROM world WHERE name IN('France','Germany','Spain');
6、對於每一個洲份,顯示洲份和國家的數量。
SELECT continent,COUNT(name) FROM world GROUP BY continent;
7、對於每一個洲份,顯示洲份和至少有1000萬人(10,000,000)口國家的數目。
SELECT continent,COUNT(name) FROM world GROUP BY continent HAVING population>=10000000;一定不能忘了GROUP BY....HAVING...
或者
SELECT continent,COUNT(name) FROM world WHERE population>=10000000 GROUP BY continent;
8、列出有至少100百萬(1億)(100,000,000)人口的洲份。
SELECT continent FROM world A GROUP BY continent HAVING SUM(population)>=100000000;
或者
SELECT continent FROM world A WHERE (SELECT SUM(population) FROM world B WHERE A.continent=B.continent)>=100000000 GROUP BY continent;
Using SUM, COUNT, MAX, AVG, DISTINCT and ORDER BY.
1、找出總共有多少個獎頒發了。
SELECT COUNT(subject) FROM nobel
2、列出每一個獎項(subject), 只列一次
SELECT DISTINCT(subject) FROM nobel
3、找出物理獎的總頒發次數。
SELECT COUNT(subject) FROM nobel WHERE subject='Physics'
4、對每一個獎項(Subject),列出頒發數目。
SELECT subject,COUNT(winner) FROM nobel GROUP BY subject
5、對每一個獎項(Subject),列出首次頒發的年份。
SELECT subject,MIN(yr) FROM nobel GROUP BY subject
6、對每一個獎項(Subject),列出2000年頒發的數目。
select subject ,count(*) from nobel where yr =2000 group by subject;应该是先列出每个奖项,再计算2000年的颁发次数,有可能存在0的情况。这里职级算了2000颁发的各个奖项的数量。
7、對每一個獎項(Subject),列出有多少個不同的得獎者。
SELECT subject,COUNT(DISTINCT(winner)) FROM nobel GROUP BY subject;
8、對每一個獎項(Subject),列出有多少年曾頒發過。
SELECT subject,COUNT(DISTINCT(yr)) FROM nobel GROUP BY subject;
9、列出哪年曾同年有3個物理獎Physics得獎者。
SELECT yr FROM nobel WHERE subject='Physics' GROUP BY yr HAVING COUNT(
*)=3;
10、列出誰得獎多於一次。
SELECT winner FROM nobel GROUP BY winner HAVING COUNT(*)>1;
11、列出誰獲得多於一個獎項(Subject)
SELECT winner FROM nobel GROUP BY winner HAVING COUNT(DISTINCT(subject))>1;
12、哪年哪獎項,是同一獎項(subject)頒發給3個人。只列出2000年及之後的資料。
SELECT yr,subject FROM nobel WHERE yr>=2000 GROUP BY subject,yr HAVING COUNT(winner)=3 ;
(group by 一般和聚合函数一起使用才有意义,比如 count sum avg等.
GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里。