sql - 使用 SQL 过滤特定值,然后删除重复行
问题描述
假设我在访问数据库中有一个名为“ABC”的表,其设置如下:
Des Date Mid ... ISIN order
A. B. C. ... D. E
F. G. H ... I. J
K. L. ... N. O
P. Q. ... S. O
L. I. U. ... I. P
我需要先从“Mid”列中选择所有空单元格,然后如果“order”列值重复,则删除重复的行,只留下一条记录,以便“Mid”列中的所有空单元格没有重复值在“顺序”列中</p>
*我的表中没有主键也没有唯一标识符
我想要的结果:
Des Date Mid ... ISIN order
A. B. C. ... D. E
F. G. H ... I. J
K. L. ... N. O
L. I. U. ... I. P
现在,在“Mid”列中选定的空单元格,“order”列中不再有重复值</p>
我的数据库太大了,只能模拟这个表做参考,这个推荐的SQL语句是什么?
解决方案
假设您的一个或多个列是主键,您可以使用:
delete from t
where t.Mid = "" and
t.des > (select min(t2.des)
from t as t2
where t2.Mid = t.Mid and
t2.Order = t.Order
);
这任意假设这des
是主键。
推荐阅读
- r - 有什么方法可以让我在 Shiny 中制作 networkd3 图表以在点击时更改?
- xamarin.forms - 商米 L2 与 Xamarin.Forms
- reactjs - Reactjs 嵌套路由:嵌套子级不渲染
- firefox - 由于地址类型不匹配而跳过 TURN 服务器
- python - 如何将列表中的元素与字符和整数相乘?
- git - 你能*真的*在 Git 中更改作者吗
- javascript - 为什么在 for of 循环中调用对象的属性不起作用?
- python - 如何从 ManyToMany 字段中提供创建新相关模型实例的选项以及 Django 表单中提供的现有选项?
- random - 这是来自 [NIST SP800-22 Revision 1a.] 的 2.5.8 示例中的印刷错误吗?
- apache-spark - withcolumn 内的数据框选择表达式