我正在尝试编写一个SQL脚本来批量删除表中具有来自文本文件的输入的行。我刚开始学习SQL脚本编程。
背景:在我之前的角色中,有人设置了一个没有主键的表,并且设计了一个程序来将数据插入到表中。但是,程序永远不会先检查重复的条目,然后继续执行插入操作。
我正在尝试清理数据库。
首先,我运行了一个查询来查看有多少行是重复的。大约有7,000个,因此,我不可能一次只删除一个查询。ID应已设置为主键。
查询以确定重复项
SELECT [ID] FROM [testing].[dbo].[testingtable]
GROUP BY [ID]
HAVING COUNT(*) > 1
我可以通过对单个
我想在Toad中执行一个SQL,在满足某些条件的情况下提取一个表的所有值。我捕获了所有的值,但是现在我想向SQL添加一个新的条件,但是我不知道怎么做。我只想捕获不重复的值。例如:
我现在有了这个:
PRINCIPAL APELLIDO NOMBRE
a b c
b c d
c d e
a l m
在本例中,我只想捕获PRINCIPAL不重复的值,在本例中,我只想捕获第二行和第三行,因为第一行和第四行是重复的。
我在表中有重复的行。
我有两个通过外键连接的表
regions (id)
orders (region_id)
区域具有重复的名称。我想删除这些重复的行,并更新orders表,重复的外键现在将设置为仅在regions表中保留现有名称。
示例:
regions table:
id name
1 | test
2 | test
3 | foo
orders table:
id region_id
6 | 1
7 | 2
9 | 3
我想要
orders table:
id region_id
6 | 1
7 | 1
9 | 3
regions table:
id name
1 |
我正在使用SQL Server Management Studio 2012。我有一个包含数千行数据的表。许多行是重复的,我需要删除它们。每行都有一个唯一标识符[OwnerID],该标识符被设置为标识规范,标识增量为1。对于每一行,重复项位于以下列中:[FirstName]、[LastName]和[CompanyName]。
因此,我需要删除这3列中具有重复值组合的行。删除后,是否可以编写t-sql来将[OwnerID]中的身份规范重置为第一行从1开始,并以1为增量将值分配给其余行?
谢谢你的帮助。
SQL新手。
将两个文件导入到claims表(Claims)。文件4028具有6721行,文件2090具有4707行。两个文件具有相同的列(Amt、First、Last、FillDate)。
已使用以下查询来标识重复项:
SELECT first, last, amt, filldate, COUNT(*) AS duplicatecount
FROM Claims
WHERE fileid IN (4028, 2090)
GROUP BY first, last, amt, filldate
HAVING COUNT(*) > 1
ORDER BY 1,2 DESC
需要查询来删除两个
我有一个表,它有唯一的id,但是有重复的行信息。
我可以使用以下查询查找具有重复项的行
SELECT
PersonAliasId, StartDateTime, GroupId, COUNT(*) as Count
FROM
Attendance
GROUP BY
PersonAliasId, StartDateTime, GroupId
HAVING
COUNT(*) > 1
我可以手动删除行,同时保留此查询所需的1
Delete
From Attendance
Where Id IN(SELECT
Id
FROM
Attendance
我正在从一个没有设置主键的旧数据库/表中导入超过600.000.000行,该表位于sql server 2005数据库中。我创建了一个工具,将这些数据导入到具有完全不同结构的新数据库中。问题是,我想要从它停止的地方恢复它,因为任何原因,比如错误或网络错误。因为这个表没有主键,所以我不能检查该行是否已经导入。有没有人知道如何识别每一行,以便我可以检查它是否已经导入?这个表有重复的行,我已经尝试计算所有列的哈希值,但由于重复行而无法工作...
谢谢!
这可能是一个常见的情况,但我找不到一个具体的答案在SO或谷歌。
我在MySQL数据库上有一个很大的朋友关系表(超过1000万行),这个表非常重要,需要维护,这样就没有重复的行了。表存储用户的uids。表的SQL是:
CREATE TABLE possiblefriends(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
user INT,
possiblefriend INT)
表的工作方式是每个用户大约有1000个被发现并需要存储的“可能的朋友”,但是需要避免重复的“可能的朋友”。
问题是,由于程序的设计,在一天的过程中,我需要
程序(追加两个表并将其存储在后一个表中):
proc sql;
create table tdstagng.aa as
select distinct * from tdstagng.aa
outer union corr
select distinct * from WORK.DYNAMIC
ORDER by Cdate;`
quit;
输出
此图像是代码的输出,Cdate是获取当前日期的列。)程序的目标是建立一个历史数据来标记随时间变化的数据。
在日期10/15/18中,即使整行都是相同的,也有重复的值(而不是该日期的7行,而是14行),我如何摆脱它?我
使用Server 2008。我正在尝试删除表中的一些重复行。下面列出了相关的表和列:
ItemTable
----------
Id - autoincrement, PK
ItemLabel - the actual identifier of the items
Linktable
----------
Id - autoincrement, PK
ItemId - the Id from ItemTable
RelatedItemId - the Id from RelatedItemTable
RelatedItemTable
------
no need to touch t
我继承了一个SQL Server数据库,其中包含重复的数据。我需要找到并删除重复的行。但是没有id字段,我不知道如何找到行。
通常,我会使用LEFT JOIN将其与其自身进行比较,并检查所有字段是否相同,但ID字段将是table1.id <> table2.id,但如果没有该字段,我不知道如何查找重复行,并且也不知道它本身是否匹配。
表:
productId int not null,
categoryId int not null,
state varchar(255) not null,
dateDone DATETIME not null
样本数据
1, 3, "st
我正在通过使用Edx的Transact-SQL查询数据来学习SQL。但是,我认为使用UNION ALL语法的部分存在一些问题。
首先,本教程创建了一个名为Employees的表,其中包含337行名和姓。然后,我希望将Employee表的所有名字、姓氏与Customer表的名字、姓氏(它有847行-有许多重复的名字)联合起来。下面的代码是我输入的代码。
SELECT FirstName, LastName
FROM SalesLT.Employees
UNION ALL
SELECT FirstName, LastName
FROM SalesLT.Customers
ORDER BY Last
我正在尝试通过我的数据库中的id从不同的表中删除特定的行,并且我有太多的表要删除,例如:
DELETE FROM [Customers]
WHERE [id] = @Id
DELETE FROM [Agents]
WHERE [id] = @Id
DELETE FROM [Policy]
WHERE [id] = @Id
DELETE FROM [Issues]
WHERE [id] = @id
DELETE FROM [Refunds]
WHERE [id] = @Id
EXEC SP_DeleteCustomerRelations @Id
EXEC SP_DeleteAge
我的表中有重复的行,我想以最有效的方式删除重复的行,因为表很大。经过一番研究,我想出了一个问题:
WITH TempEmp AS
(
SELECT name, ROW_NUMBER() OVER(PARTITION by name, address, zipcode ORDER BY name) AS duplicateRecCount
FROM mytable
)
-- Now Delete Duplicate Records
DELETE FROM TempEmp
WHERE duplicateRecCount > 1;
但它只适用于SQL,而不适用于Netezza。似乎它不喜欢DE
有没有人有一个优雅的sql语句来删除表中的重复记录,但前提是重复记录的数量超过x?所以它最多允许2到3个副本,但仅此而已?
目前,我有一个select语句,它执行以下操作:
delete table
from table t
left outer join (
select max(id) as rowid, dupcol1, dupcol2
from table
group by dupcol1, dupcol2
) as keeprows on t.id=keeprows.rowid
where keeprows.rowid is null
这很好用。但现在我想要做的是,如果这些行有
我需要从基于2列的139列的表中删除重复项,并将具有139列的唯一行加载到另一个表中。 例如: col1 col2 col3 .....col139
a b .............
b c .............
a b ............. o/p: col1 col2 col3 .....col139
a b .............
b c ............. 需要DB2的SQL查询吗?
我有一个名为table1的表,它有重复的值。它看起来是这样的:
new
pen
book
pen
like
book
book
pen
但是我想从该表中删除重复的行,并将它们插入到另一个名为table2的表中。
table2应该如下所示:
new
pen
book
like
如何在SQL Server中执行此操作?