首页 > 数据库 >【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询

【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询

时间:2024-03-28 17:57:54浏览次数:30  
标签:resource 函数 DISTINCT SUBSTRING version PostgreSQL SELECT

在PostgreSQL中,我们可以使用SELECT DISTINCTSUBSTRING函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对resource_version字段的去重查询。

1. SELECT DISTINCT语句

SELECT DISTINCT语句用于从表中选择不重复的记录。如果没有指定列名,则会选择所有列。在本例中,我们将使用SELECT DISTINCT语句来选择去重后的resource_version字段值。

SELECT DISTINCT resource_version
FROM tb_resource;
2. SUBSTRING函数

SUBSTRING函数用于从字符串中提取子串。它有三个参数:原始字符串、起始位置和子串长度。在本例中,我们将使用SUBSTRING函数来截取每个resource_version字段值的前N个字符,其中N为第4个.之后的字符数。

SELECT DISTINCT substring(resource_version, 0, position(split_part(resource_version,'.',4) in resource_version)-1)
FROM tb_resource;
3. 结合使用SELECT DISTINCTSUBSTRING函数

有时候我们需要同时使用SELECT DISTINCTSUBSTRING函数来进行更复杂的文本操作。在本例中,我们将使用这两个函数来实现对每个resource_version字段值的前3个字符进行去重查询。

SELECT DISTINCT substring(resource_version, 0, position(split_part(resource_version,'.',4) in resource_version)-1)
FROM tb_resource;

以上代码中,我们首先使用position(split_part(resource_version,'.',4) in resource_version)-1获取第4个.之前的字符数,然后使用该值作为子串长度来截取每个resource_version字段值的前N个字符。最后,我们使用SELECT DISTINCT语句来选择去重后的前缀字符串。

标签:resource,函数,DISTINCT,SUBSTRING,version,PostgreSQL,SELECT
From: https://www.cnblogs.com/bigleft/p/18102262

相关文章

  • 【PG】postgresql中的bytea中的null 和 character varying 的null 是等值的吗
    在PostgreSQL中,NULL值是用于表示缺失或未知值的特殊值。无论数据类型是什么,NULL值都被视为一个独立的概念,与其他值不相等,包括bytea和charactervarying。因此,在PostgreSQL中,bytea类型的NULL值与charactervarying类型的NULL值是不相等的。它们被视为不同的值,无......
  • 【PG】hibernate postgresql character varying = bytea 错误
    如果你在使用Hibernate和PostgreSQL时遇到了"charactervarying=bytea"错误,那么可能是因为你在实体类中的属性映射或查询条件中将一个类型为"charactervarying"的属性与一个类型为"bytea"的列进行了混淆。要解决这个错误,你需要确保在Hibernate实体类的属性映射中......
  • postgresql之创建dblink 以及查询写法和关闭dblink
    --启用dblink模块CREATEEXTENSIONdblink;--创建dblink连接--format:'dbname=mydbhost=myhostuser=myuserpassword=mypassword'--请替换mydb,myhost,myuser,和mypassword为实际的数据库名称、主机、用户和密码SELECTdblink_connect('dblink_name','dbname=......
  • 【数据库】如何利用Python中的petl将PostgreSQL中所有表的外键删除,迁移数据,再重建外键
    一、简介在数据库管理中,外键是一种重要的约束,用于确保数据的一致性和完整性。然而,在某些情况下,我们可能需要删除或修改外键。本文将介绍如何使用Python中的petl库将PostgreSQL中所有表的外键删除,迁移数据,并重新建立外键。二、安装petl和psycopg2首先,我们需要安装petl和psycopg2......
  • robotramework 连接数据库之PostgreSQL
    【情况描述】: 我在创建数据保存的时候,需要用到某个名称,而参数是这个名称对应的id,所以线要获取这个id,如下图数据库: --#  方案过程如下:#1、先导入库,本次我是用的是 PostgreSQL这个数据库,所以先安装该库;安装:pip install  psycopg2 2、编写代码; 3、获取该i......
  • 【直播课】2024年PostgreSQL CM认证实战培训课程于4月27日开课!
    课程介绍了解关注开源技术,学习PG以点带面Linux/Andriod(操作系统)、Apache/Tomcat(应用服务器)、OpenStack/KVM(虚拟化)、Docker/K8S(容器化)、Hadoop(大数据)、PostgreSQL(关系数据库)、Redis(内存数据库)、ElasticSearch(在线搜索)、GitHub(代码、文档版本工具)等。为什么学PG?1.PG是基础......
  • Alibaba Cloud Linux 安装 PostgreSQL 数据库
    https://blog.csdn.net/simpledate/article/details/123365889?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-123365889-blog-135289834.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_so......
  • Postgresql Common Commands
    PSQL快捷命令cat~/.psqlrc--checkactivesession\setactive_session'selectpid,usename,datname,application_name,client_addr,age(clock_timestamp(),query_start),queryfrompg_stat_activitywherepid<>pg_backend_pid()andstate=\'active\......
  • SpringBoot3集成PostgreSQL
    标签:PostgreSQL.Druid.Mybatis.Plus;一、简介PostgreSQL是一个功能强大的开源数据库系统,具有可靠性、稳定性、数据一致性等特点,且可以运行在所有主流操作系统上,包括Linux、Unix、Windows等。通过官方文档可以找到大量描述如何安装和使用PostgreSQL的信息。环境搭建,基于Centos......
  • 史上最全:PostgreSQL SQL的基础使用及技巧
    1、数据类型总体介绍referto:https://www.postgresql.org/docs/14/datatype.htmlNameAliasesDescriptionbigintint8signedeight-byteintegerbigserialserial8autoincrementingeight-byteintegerbit[(*n*)]fixed-lengthbitstringbitvary......