首页 > 数据库 >oracle partition by 查询重复记录中的1条数据(获取表去重后的数据所有字段)

oracle partition by 查询重复记录中的1条数据(获取表去重后的数据所有字段)

时间:2023-07-26 14:47:36浏览次数:42  
标签:表去 partition name 重后 t2 person rid select

1,partition by 分组后给分组数据排序

select t.*,row_number() over(partition by t."name",t."rid" order by t."rid") as "sort" from "person" t;

2、获取去重后的记录

select t2.* from (SELECT t.*,row_number() over(partition by t."name",t."rid" order by t."rid") as "sort" FROM "person" t) t2 where t2."sort" = 1;

3、group by 和 partition by 在去重时适用的场景

3.1、 group by 适用于 当重复的数据只有部分字段是一样的,有些字段不一样,比如id是自增的,那么就可以配合max()或者min()来去重

select t2.* from "person" t2,
(select t."name",t."rid",MAX(t."id") as maxId from "person" t group by t."name",t."rid") t3
where t2."id" = t3.MAXID;

3.2、 partition  by 适用于 当重复的数据所有字段都一样时

 

标签:表去,partition,name,重后,t2,person,rid,select
From: https://www.cnblogs.com/bobobjh/p/17582409.html

相关文章

  • 【大联盟】20230714 T1 三分网络(tri) 题解 CF1666K 【Kingdom Partition】
    题目描述here。题解赛时得分:\(30/30\),想了很久网络流最后不会。感觉这题就纯纯对脑洞,因为把题目中的\(2\)改成\(3\)就做不了)))不过还是相当有意思的。考虑如下建模方式:首先,考虑最小割。对于每个点\(i\),我们用两个点\(x_{i}\),\(y_i\)来表示。\(x_i\)表示\(i\)号点是......
  • CF1603D Artistic Partition
    首先如果\(2^k>n\),答案为\(n\)。否则\(k\le\log_2n\),然后就可以令\(dp_{i,j}\)表示前\(i\)个数分\(j\)段的最小答案。\(dp_{i,j}=\min\limits_{k=1}^{i}\{dp_{k-1,j-1}+c(k,i)\}\)。考虑到:\[\begin{aligned}c(l,r)=&\sum\limits_{i=l}^{r}\sum\limits_{j=l}^......
  • 【CF1146F】Leaf Partition
    这个题还是蛮有趣的,其实弄清楚这个染色的方案,这个题还是简单的。本质上只是对于考虑对于连通块染色,但是带有一些限制。所以我们考虑在LCA上拼接若干条根到叶子的路径。那我们就可以依据这一想法来设计状态。第一是这个点没有染色,那我们记这一状态为\(h\)。第二是这个点连......
  • ESP(EFI System Partition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,
    ESP(EFISystemPartition)分区是UEFI固件中的一个特殊分区,通常位于硬盘上的第一个分区,用于存储引导加载程序、UEFI应用程序和其他与系统启动相关的文件。ESP分区使用FAT32文件系统,并拥有特定的分区类型GUID(GUIDPartitionTable,GPT)。ESP分区的主要作用是提供一个可被UEFI固件直接......
  • Codeforces 1603D. Artistic Partition
    题目链接:D-ArtisticPartition题目大意:要求将\([1,n]\)分成\(k\)段,使得每段对应的\(c(l,r)\)之和最小,其中\(c(l,r)=\sum_{i=l}^r\sum_{j=i}^r[\gcd(i,j)\gel]\)。首先注意到当\(r<2l\)时,\(c(l,r)=r-l+1\)。所以当\(2^k-1\gen\)时答案即为\(n\)。考虑\(\texttt......
  • ORA-14099: all rows in table do not qualify for specified partition
    1.创建分区表createtablerange_part_range(idnumber,deal_datedate,contentsvarchar2(1000))partitionbyrange(deal_date)(partitionp1valueslessthan(to_date('2015-01-21','yyyy-mm-dd')),partitionp2valueslessthan(to_date......
  • 写一个删除列表中重复元素的函数,要求去重后元素相对位置保持不变
    1#无集合setlist_=['a','a','b','b','c','c']list_new=[]foriinlist_:ifinotinlist_new:list_new.append(i)list_newdeffun_1(list_=['a','a','b'......
  • Oracle partition by 用法及函数
    Oraclepartitionby--函数row_number、rank、dense_rank--row_number:序号,不重复;例如:1,2,3,4,5--rank:排序,重复;例如:1,2,2,2,5--dense_rank:排序,不重复;例如:1,2,2,2,3--sum:求和,本行排名之前(包括本行排名)的总和--count:技术,包括本行排名一共有多少名SELECTt.*FROM(S......
  • leetcode 561. Array Partition I
    Givenanarrayof2nintegers,yourtaskistogrouptheseintegersintonpairsofinteger,say(a1,b1),(a2,b2),...,(an,bn)whichmakessumofmin(ai,bi)forallifrom1tonaslargeaspossible.Example1:Input:[1,4,3,2]Output:4Explanation:......
  • linux 一块空磁盘初始化为dos的磁盘分区表,然后可以直接初始化整个磁盘为ext4格式,也可
    问:linux一块空磁盘初始化为dos的磁盘分区表,然后可以直接初始化整个磁盘为ext4格式,也可以先把磁盘分出一个Partition再初始化为ext4格式,这两种方式有什么区别,有什么特点答:在Linux上,对一块空磁盘进行初始化为ext4文件系统时,你可以选择两种不同的方式:直接初始化整个磁盘为......