gpt4 book ai didi

sql - H2 中的 ROW_NUMBER() 不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:51 25 4
gpt4 key购买 nike

我正在尝试对 H2 中的重复行进行排名。由于 H2 不支持像 RANK() 这样的窗口函数。我正在尝试使用 Row_Number() 但它不起作用,它抛出错误提示语法错误。请指导是什么问题。我是 SQL 和 H2 数据库的新手。

Insert into t2(c1, c2, c3, rank1, rank2) 
select
c1, c2, c3,
ROW_NUMBER OVER(partition by c1 order by c3) as rank1,
ROW_NUMBER OVER(partition by c2 order by c3) as rank2
from t1

请指导。提前致谢。如何解决上述语法错误?它说 ; ) 预期的。也请让我知道在 H2 数据库中查找排名的良好解决方法。

最佳答案

尝试用带有 COUNT() 的子查询替换 ROW_NUMBER()。唯一的问题是它们将为相同的 C3 字段生成相同的排名。

   select 
c1, c2, c3,

(SELECT COUNT(*) FROM T1 as T3 WHERE T3.C1=T1.C1 AND T3.C3<=T1.C3 ) as rank1,
(SELECT COUNT(*) FROM T1 as T3 WHERE T3.C2=T1.C2 AND T3.C3<=T1.C3 ) as rank2
from t1

关于sql - H2 中的 ROW_NUMBER() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24126972/

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