Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除sql表中的重复记录_Sql - Fatal编程技术网

删除sql表中的重复记录

删除sql表中的重复记录,sql,Sql,我的表中有重复记录,希望使用标识列值删除它们。我希望“Fname”和“Lname”列能够唯一地标识每个记录。但有重复的Fname和Lname,上载日期不同。下面是我为解决这个问题而设计的SQL查询,但它将采用Min(id)而不是Max(uploaddate)。请帮助修复此代码 Select Max(uploaddate), Min(id), Fname, Lname From tbl Group By Fname, Lname 这可能对你有帮助 小心 由于这是DELETE,因

我的表中有重复记录,希望使用标识列值删除它们。我希望“Fname”和“Lname”列能够唯一地标识每个记录。但有重复的Fname和Lname,上载日期不同。下面是我为解决这个问题而设计的SQL查询,但它将采用Min(id)而不是Max(uploaddate)。请帮助修复此代码

Select Max(uploaddate),
   Min(id),
   Fname,
   Lname
From tbl
Group By Fname, Lname

这可能对你有帮助

小心

由于这是
DELETE
,因此在执行此操作之前,将其更改为
SELECT*
,而不是
DELETE
,并验证输出。如果您对结果满意,请将其更改回
DELETE

DELETE FROM MY_TABLE
WHERE MY_TABLE.ROWID IN (
      SELECT ROWID
      FROM (
        SELECT MY_TABLE.ROWID
          , ROW_NUMBER() OVER (PARTITION BY FNAME, LNAME ORDER BY UPLOADDATE DESC, ID ASC) RNK
        FROM MY_TABLE
      ) TMP
      WHERE RNK = 2
    )

我不确定你的数据库是什么。我已经用ORACLE测试了这个问题。你应该通过选择sql语句并按下{}按钮,将sql代码格式化为代码。我想我已经找到了答案,但我删除了它,因为我想确认问题是什么。据我所知,您需要一个查询,该查询将生成一组使用上次上传记录id的唯一记录?@yaredmulneh您觉得我下面的回复有用吗?