SQL中的聚合函数运用
SQL 函数 运用 聚合
2023-09-14 09:12:36 时间
参考网址: https://zhuanlan.zhihu.com/p/245115561
聚合函数是什么
聚合函数是对一组值执行计算,并返回单个值的函数。常与 SELECT 语句的 GROUP BY 子句一同使用。
常见聚合函数有哪些
- count():计数,count(列名)不计算空值,count()计入空值
- sum():对一列数据求和,必须为数字
- avg():对一列数据求均值。值为null时,计算平均值时会忽略带有null值的那一行
- min():最小值
- max():最大值
聚合函数应用的注意事项
- where子句后不能跟聚合函数
- having后可用聚合函数进行筛选
- 执行的优先顺序为:where > group by > having > order by
- 运用group by之后,select中返回的字段只能出现聚合字段(或与之对应的唯一值)和聚合函数。举个栗子:有学号、性别、年龄3个字段,如果group by性别,则只能返回性别及其相关聚合函数,如果返回年龄或者学号,则只会返回1行,往往和实际需求不符
聚合函数练习题
拿到SQL题目后,解题可分为3步(根据难易程度可进行省略):
- 翻译成大白话
- 写出分析思路
- 写出对应的sql子句
![](https://pic1.zhimg.com/80/v2-9b932e8ff9dd7d324f02d6a34a3241d0_1440w.jpg)
1、计算世界总人口
分析思路:“总人口”是所有人口相加,用sum函数
SELECT SUM(population)
FROM world
2、列出所有的洲名, 每个只有一次
大白话:表中洲去重后的名称列出来
分析思路:用distinct
SELECT DISTINCT continent
FROM world
3、找出非洲(Africa)的GDP总和
分析思路:先找出非洲(where),再求和GDP(sum)
SELECT SUM(gdp)
FROM world
WHERE continent = 'Africa'
4、有多少个国家面积大于一百万
分析思路:先筛选出面积大于一百万的国家(where),再对这些国家进行计数(count)
SELECT count(name)
FROM world
WHERE area > 1000000
5、“法国”,“德国”,“西班牙”的總人口是多少?
分析思路:先筛选出法国”,“德国”,“西班牙”(where),再对这些国家人口进行求和(sum)
SELECT sum(population)
FROM world
WHERE name in ('France','Germany','Spain')
6、对每一个洲,展示洲份和国家的数量
分析思路:对洲进行分组(group by),然后对每组国家数量进行计数(count)
SELECT continent, count(name)
FROM world
GROUP BY continent
7、对每一个洲,展示洲份和至少有1000万人口国家的数目
分析思路:先筛选出有1000万人口的国家(where),然后对洲进行分组(group by),最后给出计数结果(count)
SELECT continent, count(name)
FROM world
WHERE population >= 10000000
GROUP BY continent
注意:这里筛选1000万人口不能用having来完成,因为人口不是分组字段(continent才是),这是我最开始刷题时常常混淆的地方(指where和having)
8、列出有至少1亿人口的洲
分析思路:先对洲进行分组(group by),然后计算每个洲的人口总和(sum),最后筛选出有1亿人口的洲(having)
SELECT continent
FROM world
GROUP BY continent
HAVING SUM(population) >= 100000000
相关文章
- 教程-(SQL DBE、ADO连接)+(Firebird火鸟+DbExpress)+(VF DBF数据库)+(DB Paradox)
- 【SQL 学习】去掉重复行
- MP SQL 分析打印功能
- SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析
- hive SQL COALESCE 函数
- SQL SERVER 2005 获取表的所有索引信息以及删除和新建语句
- SQL server 中 COUNT DISTINCT 函数
- SQL Server 如何跨服务器复制表中数据
- 【Teradata SQL】多行转一列函数TDStats.udfConcat
- 【Teradata SQL】创建数据库和表
- 读书笔记--SQL必知必会--建立练习环境
- 学会SQL在职场上到底能干哪些工作?
- SQL Server游标的使用
- 获取sql server与年、季度、月、周首尾有关的时间函数
- Sql Server REPLACE函数
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- oracle与sql server大批量存储过程可以替换部分
- Sql Server REPLACE函数
- Atitit sql查询语法 SQL SELECT完整语法3 1.SELECT语法3 2.FROM子句5 3.WHERE子句6 下面两张表将在后面使用到7 1.比较运算符7 2.逻辑
- Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略
- 经典SQL语句大全---基本函数
- sql 精读(二) 标准 SQL 中的编号函数
- SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数
- sphinx索引部分源码续——过程:连接到CSphSource对应的sql数据源,通过fetch row取其中一行,然后解析出field,分词,获得wordhit,最后再加入到CSphSource的Hits里
- SQL MIN() 函数
- SQL每日一练——第14天:创建计算字段、使用函数处理数据