概述

  这个关键字就是用来去重的,说到去重的话那就就会出现另外的一个关键字group
,之后的说明介绍也会和group进行对比分析。

  这个关键字的用法有两种,一种是单纯的distinct,另外一种是distinct on。

distinct distinct on
相同点 列内去重 组内去重。select一列并且不加order by时,作用域distinct相同
语法不同 select distinct 列名[,列名……] from 表名 select distinct on(分组列名) 列名[,列名……] from 表名
作用不同 返回某列中的非重复值 按指定列分组,返回每个分组中的第一行数据
增强功能 加上order by字句,可以从每个分组中取最xxx的一条数据

使用说明

  • distinct

select distinct  authorized_grant_types  from dg_client;

  这是使用distinct去重某个字段,因为时这个只能进行列内去重,如果把其他字段也一起查询出来,那么无法做到去重,出发其他字段值一样。这个去重的效果等同于group如下案例:

select authorized_grant_types from dg_client group by authorized_grant_types;

  group如此使用能达到和distinct一样的使用效果。

  根据网络结果了解,再有所有等相同的情况下,这两种去重方式的效率时差不多的,但是再没有索引等的加持下,distinct的效率要过于group【本人尚未实验证实,网络查询结果如此】

  • distinct on

select distinct on (authorized_grant_types) authorized_grant_types,* from  dg_client;

  这种去重方式为什么叫组内去重呢?因为这中方式括号内的时分组字段,也就是更据这个字段将数据分成多组,然后挑出组内的第一条数据进行展示显示。

  那么如何将组内的某条数据作为第一条进行展示呢?答案就是order by,通过排序让组内的某条数据排在第一位就可以展示了【order by 排序字段必须第一个写分组字段,后面再写其他字段】。

  这种方式的组内去重是使用group也难以做到的。

PGSQL的distinct相关推荐

  1. pgsql中distinct on的用法

    在pgsql使用过程中有一个需求,是需要根据一个字段去重其他字段不去重,然后查询出表中的字段.这里就要说到group by.distinct两种. group by吧,就是需要使用聚合函数,但我只有某 ...

  2. PGSQL中distinct和distinct on的用法与区别

    1.distinct是按照列去重 语法是: select distinct 列名[, 列名...] from 表名 使用distinct关键字查询时,是去掉某一(多)列中重复的值. 举个例子,比如我们 ...

  3. pgsql数据库默认配置事务类型_PostgreSQL基础教程之:初始化配置

    PostgreSQL基础教程之:初始化配置 时间:2020-04-27 来源: PostgreSQL基础教程之:初始化配置 一.配置pg_hba.conf 先说明客户端认证配置文件pg_hba.con ...

  4. pgsql 使用技巧

    1.CASCADE 级联删除,如果表或模式或数据库有序列.分区相关 依赖时,需要修改表或模式或数据库,则使用它 DROP SCHEMA viid_facestatic  CASCADE 2.pgsql ...

  5. pgsql遇到小问题及小功能记录

    一.问题: 1.ERROR: invalid input syntax for integer: "" 使用COALESCE((.a.delete_flag,'0')::int a ...

  6. PL/pgSQL 表达式

    0.表达式的实现方式: 你写的: IF expression THEN ... 将被被服务器的主SQL执行器处理成一个查询: SELECT expression sql实际上执行的是PREPARE命令 ...

  7. citus 系列6 - count(distinct xx) 加速 (use 估值插件 hll|hyperloglo

    背景 在分布式数据库中,计算count(distinct xxx),需要对distinct 的字段, 1.去重, 2.重分布去重后的数据,(这一步,如果distinct值特别多,那么就会比较耗时) 3 ...

  8. leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法

    题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...

  9. RxJava 过滤操作符 distinct 和 distinctUntilChanged

    distinct  看下文档 distinct  : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...

最新文章

  1. [Spring MVC] - JSP + Freemarker视图解释器整合(转)
  2. 如何解决http封包中gzip编码的html
  3. python任务栏通知区域_python+pyqt实现右下角弹出框
  4. tableview的顶部有一部分空白区域,并不是Cell的解决方法。
  5. 51CTO的技术门诊谈OSSIM
  6. proxomitron 个人代理工具
  7. js实现字符串的加密与解密
  8. 斯坦福大学CS143编译原理课程笔记:1.编译器与解释器简介
  9. js编码后提交java解码
  10. python 条件语句且_python 条件语句
  11. 确定有限状态自动机(deterministic finite automaton)DFA
  12. 【科大讯飞Face】
  13. 微信小程序服务器端用什么语言开发?
  14. 椭圆一般方程(ABCDEF)转椭圆参数方程(长短轴,几何中心)
  15. C/C++ opencv 计算 LBP特征 包括旋转不变 uniform 圆形邻域
  16. Nodejs 中 request 出现 ‘socket hang up‘ 的解决办法
  17. 【LorMe云讲堂】徐凌:利用全基因组促进可持续农业
  18. 前端websockt可重连功能的插件
  19. 法规标准-E-NCAP评测标准解析(2023版)
  20. Java实现 蓝桥杯 算法提高 Monday-Saturday质因子

热门文章

  1. java使用ssl连接mysql
  2. 掌握python和js_js与python哪个更强大 javascript和python哪个好入门
  3. 加码数据库创新 瀚高生态大会在青岛掀起数智浪潮
  4. JAVA面试集合类之ArrayList详解
  5. Bloodhound 简介
  6. VS2015 Update3 更新失败 KB3022398
  7. arch linux 配置pppoe,实现ADSL拨号上网
  8. Python一看就懂系列(三)
  9. 前端开发常用技术工具网址导航汇总
  10. Android 7.0 以后抛出的 android.os.TransactionTooLargeException 异常