我正在尝试编写一个SQL脚本来批量删除表中具有来自文本文件的输入的行。我刚开始学习SQL脚本编程。
背景:在我之前的角色中,有人设置了一个没有主键的表,并且设计了一个程序来将数据插入到表中。但是,程序永远不会先检查重复的条目,然后继续执行插入操作。
我正在尝试清理数据库。
首先,我运行了一个查询来查看有多少行是重复的。大约有7,000个,因此,我不可能一次只删除一个查询。ID应已设置为主键。
查询以确定重复项
SELECT [ID] FROM [testing].[dbo].[testingtable]
GROUP BY [ID]
HAVING COUNT(*) > 1
我可以通过对单个
我在CockroachDB中有一个表,在应用约束来设置主键之前,我已经将数据填充到表中,并且由于一些INSERT语句在数据加载阶段失败,一些行被错误地多次加载到表中。
我想要应用的约束是:
CREATE UNIQUE INDEX ON "MyDB"."MyTable" ("Row_ID");
但是,由于重复数据已经加载到表中,我得到以下错误:
pq: multiple primary keys for table "MyTable" are not allowed
我使用下面的查询检查是否确实存在一些重复的行:
SELECT
我输入了一个查询,该查询在我的数据库中引入了一些重复项。这张桌子就在前面。
它有一个id (int)列和一个为varchar(255)的短语列。为了查找重复项,我的查询如下所示:
SELECT phrase from foo GROUP BY phrase HAVING (count(phrase) > 1)
我的问题是,如何删除重复的条目而不必手动操作?我想使用上面的查询来生成至少需要删除一次的条目列表。这样,在表foo中只存在一个版本的“短语”。
我正在尝试制作一个python脚本来计算一些输赢的机会。为了做到这一点,我试着得到所有可能的组合,除了赢和输(K是赢得比赛所需的胜利数):
for combination in itertools.product(['W','L'], repeat=(K*2)-1):
if ((combination.count('L') < K) and (combination.count('W') == K)):
#calculate the chance of this situation happeni
如果有人能为重写下面的查询提供一些建议,那就更好了。我有一个包含两百万条记录的表,我需要找出两个单独键(ID和DNM)上的重复项,如果有重复项,则需要删除它。我为它编写了两个单独的查询,如下所示。有没有办法让它成为单个查询,并以更好的方式重写它,因为这个查询真的很耗时。 DELETE FROM TABLEA
WHERE ID IN (SELECT ID FROM TABLEA WHERE TYPE <> 'A'
GROUP BY ID having count(*)>1) AND TYPE <> 'A';
DELETE
我在结果集的分区中使用SQL语言中的ROW_NUMBER函数,其中我只想要每个分区中的第一行。下面是查询:
Select A, B, C, ROW_NUM
FROM
(SELECT A,B,C, ROW_NUMBER() OVER (PARTITION BY A ORDER BY C DESC) AS R0W_NUM
FROM TABLE
)X
WHERE ROW_NUM = 1
它会产生预期的结果。
但现在我使用的是FIRST_VALUE函数,如下所示:
SELECT A,B,C, FIRST_VALUE(C) OVER (PARTITION BY A ORDER BY C DESC) A
我在表中有一些数据,大致如下所示:
table stockData
(
tickId int not null,
timestamp datetime not null,
price decimal(18,5) not null
)
tickId和时间戳都不是唯一的,但是tickId和时间戳的组合应该是唯一的。
我的表中有一些重复的数据,我正在尝试删除它。但是,我得出的结论是,对于给定的数据,没有足够的信息来区分一行和另一行,而且基本上没有办法只删除其中一个重复行。我的猜测是,我需要引入某种身份列,这将帮助我识别一行和另一行。
这是正确的,还是有某种神奇的方法删除一个,但不是两个重复的数据与查
我有一些LINQ代码(不幸的是,我没有手!)从list对象获取副本。但是,原始列表中的副本如下所示:
Item A
Item A
Item A
Item B
Item B
Item C
Item C
Item C
Item C
etc...
我想要做的是扩展LINQ查询,以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或者三重实例。
什么样的查询才是最理想的呢?
我想知道是否有一种方法可以通过一个查询来做到这一点。
当我最初使用虚拟数据填充数据库以处理10k条记录时,在混乱中的某个地方,脚本额外转储了1044行,其中的行是重复的。我用以下方法确定了这一点
SELECT x.ID, x.firstname FROM info x
INNER JOIN (SELECT ID FROM info
GROUP BY ID HAVING count(id) > 1) d ON x.ID = d.ID
我试图弄清楚的是,通过这个单一的查询,我是否可以向其中添加另一个片段,以从找到的每个副本中删除一个匹配的副本?
我还意识到ID列应该设置为自动递增,但它没有