导图社区 SQL筛选两例数据相同的记录项
这是一篇关于SQL筛选两例数据相同的记录项的思维导图。结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;sql 语句就是对数据库进行操作的一种语言。
这是一篇关于第一章 操作系统的概念的思维导图,主要内容包括:详细课程讲解,17版、23版习题合辑及答案及解析。
这是一篇关于计算机字符集的思维导图,介绍了计算机字符集的相关知识,包括查看文件字符集的方法以及主要字符集的特点和选择建议。
这是一篇关于中国标准的思维导图,详细介绍了床的常规尺寸以及与之相关的褥子、床单、被套、枕套的尺寸信息,便于在选购床品时参考。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
SQL筛选两例数据相同的记录项
语句
select a.* from 表1 a ,(select 字段1,字段2 from 表1 group by 字段1,字段2 having count(1) > 1) as b Where a.字段1=b.字段1 and a.字段2=b.字段2
GROUP BY 语句
语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
语法
SELECT 例名,聚合函数 FROM 表名 WHERE 条件句 GROUP BY 例名
实例
目标
有一客户表,想统计每一个客的总体消费金额
思路
把无序的客户记录按人名分组,将每一组中的金额求和
SELECT 姓名,SUM(金额) FROM 表名 GROUP BY 姓名
HAVING 子句
作用
限定性查寻条件子句
Having与where
相同点:
对数据行进行限定性查寻(查寻条件子句)
不同点:
where只能对普通字段进行限定
子句内不能出现聚合函数
使用于基本表和视图,从中选择满足条件的元组所以可以用在select、insert、update、delete语句中
Having用于聚合后的结果进行限定
用于“组”,从中选择满足条件的组,与group by 子句连用
Having执行次序低于Where
SELECT 例名, 聚合函数(例名) FROM 表名 WHERE 条件语句 GROUP BY 例名 HAVING 聚合函数(例名) 操作符 值
示例
示例1
查寻定单总额小于2000万的所有客户
SELECT 客户名,SUM(金额) FROM 表名 GROUP BY 客户名 HAVING SUM(金额)<2000
示例2
查找客户 "甲" 或 "乙" 拥有超过 1500 的订单总金额
SELECT 客户名,SUM(金额) FROM 表名 WHERE 客户名='甲' OR 客户名='乙' GROUP BY 客户名 HAVING SUM(金额)>1500
聚合函数(aggregate function)
定义
对一组值执行计算并返回单一的值。
常见的聚合函数
count()
含义
求个数、记录条数
select COUNT(*) from TableA
select COUNT(1) from TableB
sum()
求和函数
select sum(age) from TableA
avg()
求平均数
select avg(age) from TableA
max()和min()
求最大(最小)值
select max(age) from TableA
select min(age) from TableA
综合示例
分别算出各部门的人数、总业绩、平均业绩
select 部门,count(姓名) as 人数,sum(业绩) as 总业绩,avg(业绩) as 平均业绩 from 表名 group by 业绩
统计出每个部门业绩最好的员工信息,并展示业绩是多少
select a.* from 表C a inner join (select 部门,max(业绩) as业绩 from 表C group by 部门) b on a.部门=b.部门 and a.业绩=b.业绩
示例3
显示总业绩超过300w的部门业绩明细
select a.* from 表C a where 部门 in (select 部门 from 表C group by 部门 having sum(业绩)>300)