SQL对数据进行去重

工作中使用SQL对数据进行处理计算时可能会遇到这样的问题;读取的表数据会有重复,或者我们关注的几个字段的数据会有重复,直接使用原表数据会引起计算结果不准或者做表连接时产生笛卡尔积。
本文记录使用SQL进行数据去重的几种算法。

distinct关键字去重

distinct关键字加在对应字段前可以实现对改字段结果的去重查询,distinct同样可以加在多个字段前实现按照多个字段结果的去重。

-- 单列去重
select 
	distinct field_a 
from 
	tableName;
-- 多列去重
select 
	distinct field_a,field_b,.. 
from 
	tableName;
group by分组去重

使用group by方法进行去重的原理很简单:按照某个或几个字段进行分组,那么每一组(分组字段取值相同)只会保留一条记录,甚至可以在select分组字段后面使用聚合函数产生每组的一个聚合结果。

-- 分组去重实现
select 
	field_a,
	field_b,
	field_c 
from 
	tableName 
group by field_a,field_b,field_c;
-- 分组去重后加几列聚合字段
select 
	field_a,
	field_b,
	field_c,
	count(*),
	count(distinct field_d),
	sum(field_e) 
from 
	tableName 
group by field_a,field_b,field_c;
窗口函数去重

窗口函数与聚合函数类似,聚合函数作用于分组后,对每组产生一个计算结果,窗口函数在OVER()里定义分组和排序,但是会对其中的每一行记录进行函数计算返回结果,其结果是没有减少原表行数但是也达到了分组排序等计算结果。

-- 窗口函数去重实现
-- row_number()对每组原来n行数据产生1-n对应的排序rk,即使有重复值rk会累加,也不会重复,适合用来去重
with tmp_table as(
select
	*,
	row_number() over(partition by field_a,field_b order by field_c) as rk
from
	tableName
)

select
	field_a,
	field_b
from
	tmp_table
where rk=1;
<think>好的,用户现在问的是如何彻底卸载360。我需要先回顾之前的对话历史,确保回答的一致性和准确性。之前用户问了关于蓝屏的问题,现在转向了软件卸载,这可能是因为他们在解决系统问题时遇到了360相关的问题,或者对360的安全性有顾虑。 首先,用户的需求是彻底卸载360,可能他们遇到了残留文件或服务导致的问题,或者单纯想完全移除这款软件。需要考虑到普通用户可能对系统操作不熟悉,所以步骤要详细且易于跟随。 接下来,我需要确定360卸载的难点。通常,安全软件可能会有自我保护机制,导致常规卸载不彻底,残留驱动或服务。因此,除了常规方法,可能需要进入安全模式或使用专用卸载工具。 用户可能的深层需求包括彻底清理残留文件、注册表项,以及确保没有后台进程残留。此外,用户可能担心手动操作的风险,需要给出安全的方法,并提醒备份数据。 在回答中,应该分步骤说明,包括常规卸载、安全模式操作、使用官方工具、手动清理以及替代方案。每个步骤需要简明扼要,避免技术术语过多,同时提供注意事项,比如备份和系统恢复点。 还要检查是否有遗漏的方面,比如某些特殊版本的360可能需要不同的处理方式,或者用户可能遇到卸载过程中的错误,需要提供解决方案。此外,推荐替代安全软件可能也是用户潜在的需求,但需要保持中立,避免主观意见。 最后,确保语言口语化,结构清晰,步骤编号明确,方便用户逐步操作。同时,提醒用户谨慎操作,避免误删系统文件,必要时寻求技术支持。整个过程需要逻辑连贯,覆盖所有可能的情况,确保用户能够彻底卸载360。</think>以下是彻底卸载 **360安全软件**(包括360安全卫士、360杀毒等)的分步指南,涵盖常规卸载、残留清理及注意事项: --- ### **一、常规卸载方法** #### **步骤1:通过控制面板卸载** 1. **打开控制面板** - 按 `Win + R` → 输入 `control` → 回车。 2. **进入程序卸载界面** - 选择“程序” → “程序和功能”。 3. **卸载360相关软件** - 找到“360安全卫士”“360杀毒”等 → 右键选择“卸载/更改”。 4. **按提示完成卸载** - 卸载界面中勾选“删除所有配置和日志”(如有选项)→ 确认卸载。 #### **步骤2:使用360自带的卸载工具** - 打开360安装目录(默认路径:`C:\Program Files (x86)\360`)→ 找到 `Uninstall.exe` → 运行并按提示卸载。 --- ### **二、彻底清理残留文件与注册表** #### **步骤1:进入安全模式卸载(适用于顽固残留)** 1. **启进入安全模式** - Win10/Win11:按住 `Shift` 点击“启” → 疑难解答 → 高级选项 → 启动设置 → 启后按 `F4`。 - Win7:开机时按 `F8` 选择“安全模式”。 2. **在安全模式下复步骤1** - 安全模式下卸载360可避免其进程自保护干扰。 #### **步骤2:手动删除残留文件和文件夹** - 删除以下目录(需显示隐藏文件): ```bash C:\Program Files (x86)\360 C:\ProgramData\360Safe C:\Users\你的用户名\AppData\Roaming\360safe ``` - 按 `Win + E` → 在地址栏输入上述路径逐一删除。 #### **步骤3:清理注册表(谨慎操作!)** 1. 按 `Win + R` → 输入 `regedit` → 回车。 2. 依次定位并删除以下键值(备份注册表后再操作): ```bash HKEY_CURRENT_USER\Software\360Safe HKEY_LOCAL_MACHINE\SOFTWARE\360Safe ``` - 按 `Ctrl + F` 搜索“360”或“360Safe”,删除所有相关条目。 #### **步骤4:使用专业清理工具(可选)** - 推荐工具:**Geek Uninstaller**(免费)、**Revo Uninstaller**(付费)。 - 扫描残留文件和注册表项,自动清理。 --- ### **三、关闭360相关服务与进程** 1. **终止残留进程** - 按 `Ctrl + Shift + Esc` 打开任务管理器 → 结束所有含“360”“QHActive”的进程。 2. **禁用服务** - 按 `Win + R` → 输入 `services.msc` → 回车 → 找到“360”相关服务 → 右键“停止”并设置为“禁用”。 --- ### **四、检查驱动残留** 1. 打开 **设备管理器**(右键“此电脑” → 管理 → 设备管理器)。 2. 展开“系统设备”“非即插即用驱动程序” → 查找含“360”“QH”的驱动 → 右键卸载并勾选“删除驱动程序”。 --- ### **五、替代方案(可选)** 卸载后可选择其他安全软件: - 轻量级:**Windows Defender**(系统自带)+ **火绒安全** - 功能全面:**卡巴斯基免费版**、**Avast Free Antivirus** --- ### **注意事项** 1. **备份数据**:操作前备份要文件,避免误删。 2. **系统还原点**:卸载前创建还原点(控制面板 → 恢复 → 创建还原点)。 3. **驱动兼容性**:卸载后若系统异常(如网络问题),可能需要装网卡驱动。 4. **警惕捆绑安装**:360部分版本会捆绑浏览器、压缩工具等,需手动取消勾选。 --- 通过以上步骤可彻底清除360及其残留。若仍存在异常弹窗或进程,可能是其他软件捆绑安装导致,需进一步排查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值