gpt4 book ai didi

sql - 按值范围分组并删除 Hql/Sql 中的重复行

转载 作者:行者123 更新时间:2023-12-02 01:09:59 26 4
gpt4 key购买 nike

我有这样的示例数据。我需要的是,对于其中 0 <= A 的每两行值差 <= 1,(例如 0 <= row1.A - row1.B <=1 )将重复值删除 BC , 保持较小的 A排。这可以在不使用用户自定义函数的情况下在 Hql 中完成吗?

A B C
1 2 3
4 2 3
2 1 1
3 1 1
2 2 3
3 0 2

结果:

A B C
1 2 3
2 1 1
3 0 2
4 2 3

最佳答案

如果我理解正确,您需要 B/C 行上的 A 值与前一个 A 值至少相差 2 的行。

您可以使用 lag() 然后使用一些逻辑来执行此操作:

select t.*
from (select t.*, lag(A) over (partition by B, C order by A) as prev_a
from t
) t
where prev_a is null or A > prev_a + 1;

关于sql - 按值范围分组并删除 Hql/Sql 中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com