sqlzoo-练习5——SUM and COUNT

sqlzoo-练习5——SUM and COUNT

sqlzoo-SUM and COUNT: https://sqlzoo.net/wiki/SUM_and_COUNT

这期主要是 聚集函数(SUM、COUNT、MAX、DISTINCT )和 分组 (GROUP BY、HAVING ) 的运用,用于数据统计和分析

1、Show the total population of the world.

SELECT SUM(population) AS sum
FROM world
  • 聚集函数可直接用在SELECT 后面,对表格数据处理后返回一个列(可命名),即计算字段
  • SUM(column) 返回该列的所有值的和。

2、List all the continents - just once each.

SELECT DISTINCT(continent) 
FROM world
//学了下面那个GROUP BY 之后,也可以将其分组,那就是每个洲一个了
SELECT continent
FROM world
GROUP BY continent
  • DISTINCT(column) 返回该列的不同的值,每个值只有一个。
  • DISTINCT(column) 必须指定列。不能DISTINCT(*)。

3、Give the total GDP of Africa

SELECT SUM(gdp) AS gdp_sum
FROM world
WHERE continent = 'Africa'

4、How many countries have an area of at least 1000000

SELECT COUNT(name) AS big_country
FROM world
WHERE area > 1000000
  • COUNT() 用来统计数量

5、What is the total population of (‘Estonia’, ‘Latvia’, ‘Lithuania’)

SELECT SUM(population) As sum_p
FROM world
WHERE name in ('Estonia','Latvia','Lithuania')

6、For each continent show the continent and number of countries.

SELECT continent, COUNT(name) AS num_c
FROM world
GROUP BY continent
  • GROUP BY 列名 : 将数据按列分组,每个组内在统计数据。

7、For each continent show the continent and number of countries with populations of at least 10 million.

SELECT continent, COUNT(name) As num_c
FROM world
WHERE population > 10000000
GROUP BY continent
  • WHERE 判别放在 GROUP BY 之前

8、List the continents that have a total population of at least 100 million.

SELECT continent FROM world
GROUP BY continent
HAVING SUM(population) > 100000000
  • HAVING 判别放在 GROUP BY 之后
  • HAVING 一般是对分组后的组进行筛选。一般是SUM, COUNT等。保留满足条件的组
  • WHERE 一般是对分组前组内的数据进行筛选。组都在,保留满足条件的组内的数据


  • 一般的 分组查询 的结构:
SELECT1,  聚集函数(2) AS 别名(计算字段)
FROMWHERE   条件1  	//选行
GROUP BY1  	//分组
HAVING  条件2	//选组
ORDER BY3	//排序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值