首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server :删除乘法主键上的最大值

SQL Server :删除乘法主键上的最大值
EN

Stack Overflow用户
提问于 2017-10-25 20:26:57
回答 2查看 33关注 0票数 0

我想从我的表中删除仅在主键上有最大不同列数的重复项

代码语言:javascript
复制
Column1PK Column2    Column3    Column4
----------------------------------------
Dog       468        JOURNALING     1
Dog       466        JOURNALING     2
Cat       268        TRAVELING      1
Cat       366        TRAVELING      2
Cat       166        TRAVELING      3
...        ..         ..     


Column1PK  Column2     Column3
-----------------------------------
Dog        468         JOURNALING
Cat        366         TRAVELING
..         ..          ..

我的代码:

代码语言:javascript
复制
WITH CTE AS
(
   SELECT 
       [Column1PK], [Column2], [Column3],
       RN = ROW_NUMBER() OVER (PARTITION BY [Column1PK] ORDER BY [Column1PK])
   FROM 
       [dbo].[table] 
)
DELETE FROM CTE 
WHERE RN > 1 and MAX[Column2] 

我的另一个想法是:

代码语言:javascript
复制
Column1PK  Column3    
----------------------
Dog468     JOURNALING    
Dog466     JOURNALING     
Cat268     TRAVELING      
Cat366     TRAVELING     
Cat166     TRAVELING


Column1PK  Column3       
-------------------------
Dog466     JOURNALING          
Cat366     TRAVELING   

代码:

代码语言:javascript
复制
delete from table 
where Column1PK RIGHT (LEN(MAXColumn1PK))

感谢您的意见如何删除多个主键的最大值

EN

回答 2

Stack Overflow用户

发布于 2017-10-25 21:03:12

删除次要项

代码语言:javascript
复制
DELETE A
(
   SELECT 
       [Column1PK], [Column2], [Column3],
       RN = ROW_NUMBER() OVER (PARTITION BY [Column1PK] ORDER BY [Column1PK] DESC)
   FROM 
       [dbo].[table] 
) A
WHERE RN > 1

删除最大的

代码语言:javascript
复制
DELETE A
(
   SELECT 
       [Column1PK], [Column2], [Column3],
       RN = ROW_NUMBER() OVER (PARTITION BY [Column1PK] ORDER BY [Column1PK] ASC)
   FROM 
       [dbo].[table] 
) A
WHERE RN > 1
票数 0
EN

Stack Overflow用户

发布于 2017-10-25 20:55:06

不知道我是否理解正确,但如果您只想删除具有最高值的重复项,则可以使用exists。它看起来像这样:

代码语言:javascript
复制
DELETE FROM Table_A AS A
WHERE EXISTS (SELECT * FROM Table_A AS A2
               WHERE A2.Column1PK = A.Column1PK
                 AND A2?? < A.??)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46932428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档