类似:如何删除表中的重复行
我有一种感觉,这是不可能的,我将不得不以乏味的方式去做,但我会看看你们要说什么。
我有一张相当大的桌子,大约有 400 万行和 50 多列。它有一个应该是唯一的列,Episode。不幸的是,Episode并不是唯一的——这背后的逻辑是偶尔会改变行中的其他字段,尽管 Episode 会重复。但是,实际上有一个唯一的列,Sequence。
我想尝试识别具有相同剧集编号但它们之间有所不同(除了序列)的行,所以我可以找出这种情况发生的频率,以及是否值得允许,或者我应该只删除这些行并忽略可能的轻微差异。
我希望创建一个显示情节编号的表格,并为每个表格列创建一个列,确定双方的值,它们是不同的:
SELECT Episode,
CASE WHEN a.Value1<>b.Value1
THEN a.Value1 + ',' + b.Value1
ELSE '' END AS Value1,
CASE WHEN a.Value2<>b.Value2
THEN a.Value2 + ',' + b.Value2
ELSE '' END AS Value2
FROM Table1 a INNER JOIN Table1 b ON a.Episode = b.Episode
WHERE a.Value1<>b.Value1
OR a.Value2<>b.Value2
(这可能充满了漏洞,但我希望突出显示更改的值的想法得以实现。)
不幸的是,对五十列进行这样的查询非常痛苦。显然,如果只使用一次,它并不一定要坚如磐石,但同时,代码复制的越多,就越有可能遗漏一些东西。据我所知,我不能只搜索 DISTINCT,因为 Sequence 是不同的,并且同一行会以不同的方式弹出。
有没有人有可能有帮助的查询或功能?会输出类似于上述查询结果的东西,还是不同的解决方案?正如我所说,现在我并不是真的要删除重复项,只是识别它们。