五种主流数据库:排除重复结果

查询语句有可能会返回重复的数据,我们可以使用 DISTINCT 关键字排除查询结果中的重复记录。

本文比较五种主流数据库排除重复查询结果的实现和差异,包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。

排除重复结果MySQLOracleSQL ServerPostgreSQLSQLite
DISTINCT✔️✔️✔️✔️✔️
DISTINCTROW✔️
UNIQUE✔️
DISTINCT ON✔️

单个字段去重

以下语句查找员工表中的所有不同性别:

SELECT DISTINCT sex
FROM employee;

其中,DISTINCT 关键字位于 SELECT 之后,而不像其他过滤条件一样位于 WHERE 子句中。查询返回的结果如下:

sex
---
男 
女 

在 Oracle 数据库中,可以使用 UNIQUE 关键字替代 DISTINCT。例如:

SELECT UNIQUE sex
FROM employee;

在 MySQL 中,可以使用 DISTINCTROW 关键字替代 DISTINCT。例如:

SELECT DISTINCTROW sex
FROM employee;

多个字段去重

DISTINCT 也可以用于多个字段的去重。例如,以下语句查找不同部门编号和性别的所有组合:

SELECT DISTINCT dept_id, sex
FROM employee;

查询返回的结果如下:

dept_id|sex
-------|---1|2|3|4|4|5|

除了 DISTINCT 之外,我们也可以使用 ALL 关键字返回不排除重复数据的结果。不过通常没有必要,因为使用 ALL 是默认的行为。例如:

SELECT ALL dept_id, sex
FROM employee;

部分字段去重

PostgreSQL 提供了一种扩展的去重语法:DISTINCT ON,可以基于部分字段返回不同的数据。例如:

SELECT DISTINCT ON (dept_id) dept_id, emp_name
FROM employee;dept_id|emp_name|
-------+--------+1|刘备     |2|诸葛亮    |3|孙尚香    |4|赵云     |5|法正     |

以上查询基于部门编号去重,每个部门只会返回一条记录,每个部门只返回第一个员工姓名。

如果指定了 ORDER BY,可以改变每个 DISTINCT ON 分组内的数据顺序。例如:

SELECT DISTINCT ON (dept_id) dept_id, emp_name
FROM employee
ORDER BY dept_id, emp_name;dept_id|emp_name|
-------+--------+1|关羽     |2|黄忠     |3|孙尚香    |4|关平     |5|邓芝     |

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Linux系统的目录结构介绍常用命令介绍

目录 一. Linux系统目录结构介绍 二. 一些常用命令的介绍 1、# 与 $的区别 2、ifconfig 3、su 4、cd 5、目录查看 6、查看文件内容 7、创建目录及文件 8、复制和移动 9、其他 10、tar 11、which 12、whereis 13、find 14、chmod 三. vim的基本使用 四. SSH密…

android gradle 使用总结

一 buildscript buildscript:这里面的声明(repositories,dependencies)是 gradle脚本自身需要使用的资源,会优先加载, 而外面的声明(repositories,dependencies)是项目…

QT+C++桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置

程序示例精选 QTC桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《QTC桌面程序窗体框架模板-中英文切换-文件打开历史记录-…

认识数学建模

文章目录 1 什么是数学建模2 数学建模的比赛形式3 参加数学建模的好处4 数学建模的流程5 数学建模成员分工6 数学建模常用软件7 数学建模竞赛7.1 美国大学生数学建模竞赛7.2 MathorCup高校数学建模挑战赛7.3 华中杯大学生数学建模挑战赛7.4 认证杯数学建模网络挑战赛7.5 华东杯…

Web08--JavaScript高级

1、BOM对象 BOM:browser object model 浏览器对象模型 BOM对象包括window对象、screen对象、history对象、location对象、navigator对象。 1.1 window对象 所有的浏览器都支持window对象。它表示的浏览器窗口 window对象是js中的顶层对象,所有的j…

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

HAL STM32EC11编码器实现增减调节及单击、双击、长按功能 📺实现效果演示: 📘内容提要 📝本文主要实现,通过STM32 HAL库开发,实现的EC11编码器功能,按键结合状态机思想实现的拓展单击、双击、…

Web--HTML基础

文章目录 安装环境HTMLhtml框架html基础标签语义标签html特殊符号 安装环境 安装vscode后 安装插件 可以先不写后台直接将前度界面展示出来 自动补全tag,同时修改tag时自动改另一半 在设置里将保存自动格式化的选项勾上 创建一个index.htm文件,这个…

力扣80、删除有序数组中的重复项Ⅱ(中等)

1 题目描述 图1 题目描述 2 题目解读 对于有序数组nums,要求在不使用额外数组空间的条件下,删除数组nums中重复出现的元素,使得nums中出现次数超过两次的元素只出现两次。返回删除后数组的新长度。 3 解法一:双指针 双指针法可以…

防御第三次作业-防火墙组网实验(3)

目录 实验拓扑图 要求 1 2 针对10.0.2.10设备的安全策略: 针对10.0.2.20设备的安全策略: 3 4 实验拓扑图 各设备ip和接口已配好,均可可ping通防火墙。 要求 1.生产区在工作时间内可以访问dmz区域,仅可以访问http服…

Kali如何启动SSH服务并实现无公网ip环境远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh 远程连接kali! …

最佳的reCAPTCHA v3验证码解析器,使用API或扩展自动解析reCAPTCHA v3

在在线安全领域,reCAPTCHA v3作为一种重要工具,用于保护网站免受自动机器人和恶意活动的侵害。在本文中,我们探讨了Capsolver的能力,这是征服reCAPTCHA v3挑战的终极解决方案。凭借其先进的功能,包括API集成和多功能的…

AI新工具(20240124) ComfyUI-InstantID-ComfyUI下的非官方InstantID实现;Lumiere是由谷歌时空扩散模型

ComfyUI-InstantID-ComfyUI下的非官方InstantID实现 ComfyUI InstantID是对InstantID的非官方实现,支持本地和huggingface hub模型,同时支持通用styler。它包括基础模型加载、InsightFace模型加载、ID ControlNet模型加载、Ipadapter_instantid模型加载…

【ProtoBuf】使用指南

一.什么是ProtoBuf 特点:ProtoBuf是用于序列化和反序列化的一种方法,类似xml和json,但是效率更高,体积更小。ProtoBuf具有语⾔⽆关、平台⽆关,扩展性、兼容性好等特点。 ProtoBuf是需要依赖通过编译生成的头文件和源…

oracle 12 查询数据库锁

在Oracle 12c中,查询数据库锁信息可以通过以下视图进行: v$locked_object:这个视图显示了当前被锁定的对象(如表、行等)的信息。 SELECT l.session_id sid, s.serial#, l.locked_mode,o.object_name,s.osuser,s.userna…

1.25学习总结

今天学习了二叉树,了解了二叉树的创建和遍历的过程 今天所了解的遍历过程主要分为三种,前序中序和后序,都是DFS的想法 前序遍历:先输出在遍历左节点和右节点(输出->左->右) 中序遍历:先…

网络工程师:新兴科技基础知识面试题(十四)

116.简述模拟信号到数字信号是怎么转化的。 模拟信号到数字信号的转化过程是通过模数转换器(ADC)完成的,该过程也被称为采样和量化。 1. 采样: 模拟信号是连续的,而数字信号是离散的。在转换过程中,模拟信…

ip数据库.

IP库(也叫IP地址数据库),是由专业技术人员经过长时间通过多种技术手段收集而来的,并且长期有专业人员进行更新、维护、补充。 IP库里面存放了大量的IP地址,方便用户查询,比如,你知道了某个IP,就可以查到这…

华为云磁盘性能指标(参考)

MD[华为云磁盘性能指标(参考)] 云硬盘(Elastic Volume Service, EVS) 根据性能,磁盘可分为极速型SSD V2、极速型SSD、通用型SSD V2、超高IO、通用型SSD、高IO、普通IO。 性能指标(参考),测速说明:操作系统-windows …

如何配置Tomcat服务环境并实现无公网ip访问本地站点

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#xff0…

conda环境下使用youtube_dl模块下载youtube视频异常解决方法

1 问题描述 使用python的youtube_dl模块下载youtube视频时失败,错误信息如下: ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/up…