ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL实例_7子查询二重条件筛选(完整演绎版)

2021-10-12 13:04:04  阅读:180  来源: 互联网

标签:多重 股室 -- 二重 重表 实例 SQL 筛选 职能


前言导读
这个实例的逻辑性也是非常强的,特别能锻炼逻辑思维,
虽然这个功能在pandas中的语法是很简单的.

一 创建演示数据

1新建表
create table 多重去重表 (编号 varchar(10) , 股室 varchar(50) , 职能 varchar(50),工资 int)
2插入数据
insert into 多重去重表  values  ('A','股室1','职能1',100)   
insert into 多重去重表  values  ('B','股室1','职能2',200)
insert into 多重去重表  values  ('C','股室3','职能3',300)
insert into 多重去重表  values  ('D','股室4','职能5',500)
insert into 多重去重表  values  ('E','股室4','职能7',600)
3形成表格
编号  股室     职能   工资
 A	 股室1	职能1	 100
 B	 股室1	职能2	 200
 C	 股室3	职能3	 300
 D	 股室4	职能5	 500
 E	 股室4	职能7	 600

二 问题需求分析

--1需求说明:
1 通过数据表观察,需要对'股室'字段进行去重处理
2 但是相同的'股室'在'职能'字段有不同的信息
3 重点:要显示所有字段

--2遇到问题:
如果直接使用group by 分组,就无法全部显示字段,
如果直接使用distinct 单列去重,也无法全部显示字段


三 结构化实现

1 第一步:子句:筛选扩展列重复数据
select 股室,min(工资) ,count(*)
from  多重去重表 
group by 股室
order by   count(*) desc   

--原数据
编号  股室     职能   工资
 A	 股室1	职能1	 100
 B	 股室1	职能2	 200
 C	 股室3	职能3	 300
 D	 股室4	职能5	 500
 E	 股室4	职能7	 600
 
--查询结果
股室1	100	2
股室4	500	2
股室3	300	1

--说明:
通过观察,'股室'字段有重复,需要去重,'职能'字段有不同,因此需要对'职能'字段选出一条数据
通过观察,'工资'字段是数值型数据,因此通过工资额的最小值筛选,筛选出唯一职能选项

因为需要横向的数据完整性,因此需要将目标列重复而横向列不重复的信息进行二层删选
通过表观察,发现BDCQZH字段符合筛选条件,于是进行最小值筛选,其实也可以使用其他条件
通过从原始结果和筛选后的结果比较,确实是选择了数字最小的一条数据
2 第二步:父句:匹配原表去重目标列
select * from 多重去重表
where 工资 in ( select min(工资) 
				from 多重去重表 
				group by 股室)  
									
--说明 子句中select中的其他新增列不能添加,不符合语句格式,只能选择条件筛选列
3 第三步:结论说明
通过对子句中'工资'字段筛选,从而确定'职能'的唯一性,
然后通过'股室'字段和父句原表匹配
4 扩展:直接删除数据
delete * from 多重去重表
where 工资 in ( select min(工资) 
				from 多重去重表 
				group by 股室)  

(本章完)

所有资源均有PDF目录版,如想获得请扫码关注右侧公众号自动获取

标签:多重,股室,--,二重,重表,实例,SQL,筛选,职能
来源: https://www.cnblogs.com/PythonSQL/p/15397384.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有