SQL语言 - 聚合函数练习

来源:互联网 发布:计量器具管理软件源码 编辑:程序博客网 时间:2024/05/16 06:55

本篇总结将介绍SQL语言中常用的聚合函数,如AVG()求平均数,SUM()求和以及GROUP BY分组,Having等的使用
相关练习的数据库请参看:http://www.sqlzoo.cn/1_1.htm
练习题地址:http://www.sqlzoo.cn/2.htm
练习题答案及分析:
1a. 显示世界人口总和. 
SELECT SUM(population) FROM bbc

1b. 列出所有的地区,但每个地区只能显示一次.
SELECT DISTINCT region FROM bbc
DISTINCET关键字只作用是如果有相同的行,那么仅显示一次。我们也可以使用GROUP BY来做这道题。如:
SELECT region FROM bbc GROUP BY region

1c. 显示GDP超过所有Africa(非洲)国家总和的国家.
SELECT name FROM bbc
  WHERE gdp>
    (SELECT SUM(gdp) FROM bbc
     WHERE region='Africa')
这道题使用到了子查询。因为首先要求得非洲国家的GDP总和,因此这里使用子查询是最方便的

2a. 显示每个地区以及的该地区的国家总数.
SELECT region, COUNT(name) FROM bbc GROUP BY region

2b. 显示每个地区以及的该地区国家总人口数不少于1000万的国家总数.
SELECT region, COUNT(name) FROM bbc
  WHERE population>=10000000
  GROUP BY region

2c. 列出人口总数不少于1亿的地区.
SELECT region FROM bbc
  GROUP BY region
  HAVING SUM(population)>100000000