sql - Oracle SQL 删除 4 个字段中 2 个的重复项
问题描述
我正在使用 Oracle SQL 来提取数据;
我有 2 个系统中的 ID 的供应期。我有这个使用下面的代码:
select distinct b.ID_Code, b.supply_start_date, b.supply_end_date, b.system_id
from (
select ID_Code, max(supply_start_date) as max_dt
from tmp_mmt_sup
group by ID_Code) a
inner join tmp_mmt_sup b
on a.ID_Code=b.ID_Code and a.max_dt=b.SUPPLY_START_DATE;
但是,我有几条记录在 2 个不同的系统上,但开始日期/结束日期相同。我只想保留其中一个 - 不打扰哪个!
所以而不是
ID_Code Start End System
123 01-04-2018 30-04-2018 ABC
123 01-04-2018 30-04-2018 DEF
我只有这些记录之一。
非常感谢 D
解决方案
如果您不关心返回哪一个,那么聚合函数之一(例如MIN
or MAX
)就可以完成这项工作。例如:
select b.id_code,
b.supply_start_date,
b.supply_end_date,
max(b.system_id) system_id --> added MAX here ...
from (select id_code,
max(supply_start_date) as max_dt
from tmp_mmt_sup
group by id_code
) a
inner join tmp_mmt_sup b
on a.id_code = b.id_code and a.max_dt = b.supply_start_date
group by b.id_code, --> ... and GROUP BY here
b.supply_start_date,
b.supply_end_date;
推荐阅读
- ios - Swift 分配一个浮点变量
- node.js - 未捕获的类型错误:gax.GoogleProtoFilesRoot 不是构造函数
- xcode - 使用镜像容器进行开发
- excel - 如何在 Excel 工作簿中为特定颜色的每个单元格循环?
- python - 未找到 testing.postgresql 命令:docker 内的 initdb
- xamarin.forms - 如何根据月份将项目添加到 ObservableCollection?
- javascript - 在输入选择填充数据字段之前触发模糊验证 - ReactJS
- typescript - 使用 react-native typescrpit 中的 .tsx 文件生成 .js 文件的 compilerOptions 中的属性是什么
- python - 如何解决以下代码中的 ValueError?
- python - Tkinter:“str”对象在尝试关闭时没有属性“children”