【发布时间】:2021-08-11 00:23:25
【问题描述】:
我一直在尝试查询 oracle 数据库并根据特定列值删除重复行,但没有取得多大成功。
我当前的 oracle 查询如下:
SELECT col1, col2, col3, col4
FROM myTable
WHERE myConditions
ORDER BY col5
问题在于,在这个查询中,col4 有几个可能的 col1/col2/col3 组合的值,我只想保留 col5 最小的值(因此查询中的 order by)。
在 pandas 中,这相当于运行此查询,然后在结果上运行 df.drop_duplicates(subset = ["col1", "col2", "col3"])。
我已经尝试使用 first_value 函数来实现这一点,但是我的 oracle 技能有限,有人知道如何修改查询以获得想要的结果吗?
以下是给定表的所需查询输出示例:
表:
col1 col2 col3 col4 col5
0 A A 1 3 1
1 A A 1 5 2
2 A A 2 2 1
3 A A 2 -1 2
4 A B 1 0 3
5 A B 1 0 4
6 A B 2 1 4
7 A B 2 4 3
查询输出:
col1 col2 col3 col4
0 A A 1 3
1 A A 2 2
2 A B 1 0
3 A B 2 4
【问题讨论】: