sqlzoo第五关SUM and COUNT

第五关 SUM and COUNT

  • 世界各国信息数据库表
name(国家名) continent(州份) area(面积) population(人口) dgp(国民生产总值)
Afghanistan Asia 652230 25500100 20343000000
Albania Europe 28748 2831741 12960000000
Algeria Africa 2381741 37100000 188681000000
5.1题目及答案
  1. 展示世界的總人口。
SELECT sum(population)
	FROM world
  1. 列出所有的洲份, 每個只有一次。
  • 解法一:
select  continent  
	from world group by continent
  • 解法二:
select distinct continent  from world 
  1. 找出非洲(Africa)的GDP總和。
select sum(gdp) 
	from world where continent = 'Africa'
  1. 有多少個國家具有至少百萬(1000000)的面積。
select count(name) 
	from world where area >=1000000
  1. (‘France’,‘Germany’,‘Spain’)(“法國”,“德國”,“西班牙”)的總人口是多少?
select sum(population) 
	from world where name in ('France','Germany','Spain')
  1. 對於每一個洲份,顯示洲份和國家的數量。
select  continent ,count(name) 
	from world group by continent
  1. 對於每一個洲份,顯示洲份和至少有1000萬人(10,000,000)口國家的數目。
select  continent ,count(name) 
	from world where population >=10000000 group by continent
  1. 列出有至少100百萬(1億)(100,000,000)人口的洲份。
select continent 
	from world group by continent having sum(population)>=100000000
5.2总结
函数 用法说明
sum 求和,返回列的总和
max 返回所选列的最大值
count 返回符合指定条件的行数(NULL 不计入)
distinct 同 SELECT 一起使用,去除所有重复记录,只返回唯一项
group by 以按一个或多个列对结果集进行分组,通常与集合函数(COUNT,MAX,MIN,SUM,AVG)一起使用
having 对 GROUP BY 子句所产生的组施加条件,HAVING 子句必须紧随 GROUP BY 子句,并出现在 ORDER BY 子句(如果有的话)之前。
  • having在select查询中的位置:
    SELECT
    FROM
    WHERE
    GROUP BY
    HAVING
    ORDER BY
发布了33 篇原创文章 · 获赞 1 · 访问量 1433

猜你喜欢

转载自blog.csdn.net/smileKutper/article/details/103766870