我正在尝试编写一个SQL脚本来批量删除表中具有来自文本文件的输入的行。我刚开始学习SQL脚本编程。
背景:在我之前的角色中,有人设置了一个没有主键的表,并且设计了一个程序来将数据插入到表中。但是,程序永远不会先检查重复的条目,然后继续执行插入操作。
我正在尝试清理数据库。
首先,我运行了一个查询来查看有多少行是重复的。大约有7,000个,因此,我不可能一次只删除一个查询。ID应已设置为主键。
查询以确定重复项
SELECT [ID] FROM [testing].[dbo].[testingtable]
GROUP BY [ID]
HAVING COUNT(*) > 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
需要查询来删除两个
我有四个相互关联的表(队列、歌曲、标题、songs_titles),我需要删除队列表中出现的重复项。
队列表结构是:
ID (primary key)
songID (foreign key from song table)
sortID
标题表具有如下结构:
ID (primary key)
title
author
lyrics
Songs_Titles表的结构如下:
songID (foreign key from song table)
titlesID (foreign key from titles table)
info
宋表有许多字段,但包含在队列表和songs_titles表
我使用下面的SQL来识别表'transaction_list‘中的重复项。这个可以完美地工作。现在,我想根据这些条件从该表中删除所有重复项,只保留最新的条目。它们可以通过列'last_update‘来标识。我尝试了不同的DELETE语句,但都不起作用。我们非常感谢您的任何建议。 SELECT par_num
,tran_num
,COUNT(*) AS num_duplicates
FROM transaction_list
WHERE last_update >= to_date('01-mar-2020 00:00:00', 'dd-mon-
在我的数据流中,在一些查找之后,我会得到重复的客户记录(它们不是完全重复的,只是客户ID是相同的),基于客户的一些属性,如城市,位置。我需要从中选择一条记录。
如何在SSIS数据流中实现这一点
以下是示例数据:
;with cust (CustomerID,Cutomer_Name,score)
as
(Select 1 as CustomerID, 'abd' as Cutomer_Name, 100 as Score
union
select 1,'abd',null
union select 1,'abd',20
)
select
通常,在SQL JOINS中,需要将两个表( ON )连接为一个特定的列,然后合并行。这不是我要找的。
是否可以以相同名称的ORDER BY列连接SQL中的表,以便返回x行,其中x=表1和表2中的行之和。
为了澄清我的意思,下面是一个示例查询:
SELECT * FROM (combined Real and Placeholder items)
ORDER BY StartDate, OnDayIndex
结果可能是这样的:
ID OnDayIndex StartDate ItemType Name TemplatePointer
12308
这是我的查询,但是当我在甲骨文中运行这个查询时,它会给出以下错误:
delete from
(select ename,e1.store_id,e1.sal as highest_sal
from
employees e1 inner join
(select store_id,max(sal) as sal
from employees
group by store_id
) e2
on e1.store_id=e2.store_id
and e1.sal=e2.sal
order by store_id) s
where rowid not in
(select min(ro
我继承了一个数据库,该数据库的表(300 of )充满了SQL Image。我知道这个数据类型是折旧的。
作为例行清理,我希望从满足特定条件的表中删除所有重复的Image。
如何有效地比较使用SQL的二进制数据?=相等运算符足够了吗?
下面是一个场景:
Table 'Paperwork'
int ID
int EmployeeID
int AnotherID
int AnotherFKID
image Attachment
我希望找到Attachment、EmployeeID、AnotherID和AnotherFKID相同的所有行。这样做对数据库的影响最小,
将Excel数据从LightSwitch应用程序导入到SQL Server中的存储表中后,我得到了重复的记录。我需要一种方法来删除重复项,这些重复项既可以从LightSwitch执行,也可以在插入后/插入期间在SQL中自动运行。我考虑过触发,但我不确定这是不是最好的解决方案。副本将如下所示
DocName|DocUser|DocType|DocDate|
test user1 word 10/12/2012
test user1 word 10/12/2012
test2 user2 word 10/11/2012
test2 user2
我目前有一个表,由于缺乏完整性检查,主键列上有多个重复项。尽管如此,我正在尝试删除重复项。问题是,没有id列,这意味着查找重复项不是一件容易的事情。
我目前的解决方案涉及到使用count(*)... having构造创建第二个表,并选择要在其中删除的行。我的问题是,SAS delete命令不允许执行以下操作:
proc sql;
delete from TableA
where (v1,v2,v3) in TableB
有没有办法根据一个表的内容从另一个表中删除?
我有一个包含500,000+记录的表,以及ID、名字、姓氏和电子邮件地址字段。我要做的是查找名字和姓氏都重复的行(因为同一个人有两个单独的ID、电子邮件地址或其他地址,它们在表中出现不止一次)。我想我知道如何使用GROUP BY查找重复项,这就是我所拥有的:
SELECT first_name, last_name, COUNT(*)
FROM person_table
GROUP BY first_name, last_name
HAVING COUNT(*) > 1
问题是,我需要将具有这些重复名称的整个行移到不同的表中。有没有一种方法可以找到重复项并获得整个行?或者至少也能拿到ID
我的where in sql语句有问题。我先展示我的桌子,然后解释我想做什么,以及为什么我要得到这个问题。
Table1
id primary key
title
Table2
id primary key
vid foreign key
Table3
vid primary key
vegetable
下面是我的表,下面是我的CodeIgniter SQL
$this->db->select('*');
$this->db->from('Table1');
$this->db->join('Table
可能重复:
我有一个查询,它以相同的名称和年份从表中返回重复的行。
如何删除重复的记录,使表中只有唯一的值?
查询是:
SELECT movies.movie_name, movies.year
FROM movies
INNER JOIN
(
SELECT movie_name, year
FROM movies
GROUP BY movie_name,year
HAVING count(movie_id) > 1
) dup
ON movies.movie_name = dup.movie_name
and movi