当前位置: 首页 > 面试题库 >

带等级和分区的SQL

薛墨一
2023-03-14
问题内容

我需要执行以下sql:

select * from 
(select nt.*, 
        rank() over (partition by feld0 order by feld1 desc) as ranking
 from (select bla from test) nt)
where ranking < 3 
order by 1,2

此sql在我的oracle数据库中运行良好,但在我有时使用的h2数据库中却不起作用,因为未定义等级和分区。

因此,我需要转换此sql,以便它可以在h2和oracle中工作。

我想使用Java执行此sql。那么有可能将此sql拆分为不同的sql,而不进行排名和分区吗?然后用Java处理呢?


问题答案:

如果feld1feld0分区中是唯一的,则可以:

select  *
,       (
        select  count(*)
        from    YourTable yt2
        where   yt2.feld0 = yt1.feld0 -- Same partition
                and yt2.feld1 <= yt1.feld1 -- Lower or equal rank
        ) as ranking
from    YourTable yt1


 类似资料:
  • 问题内容: 我有一个包含一些列的表:用户,类别,值 我想进行查询,以按值对所有用户进行排名,但将类别重置。 例子: 查询将返回: 有任何想法吗? 我编写查询并指定类别,它可以工作,但随后我必须编写循环,而且循环非常慢。 问题答案: 在排名函数OVER子句中使用“分区依据”

  • 等效分区是一种软件测试技术,其中输入数据被划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。如果一个分区的条件为真,则另一个等效分区的条件也必须为真,如果一个分区的条件为假,则另一个等效分区的条件也必须为假。等价划分的原则是,测试用例应设计为至少覆盖每个分区一次。每个等效分区的每个值必须表现出与其他分区相同的行为。 等效分区源自软件的要求和规范。这种方法的优点是,它有助于减少测试时间,

  • 我有个任务,大概是: 我尝试了所有的方法,但仍然出现错误:/

  • 我正在编写一个bash shell脚本来输出文件名的后缀。 在这种情况下,我使用: 因此,输出例如: 但是,如果文件名没有后缀,因此没有点,我该怎么办?我的输出应该是“无后缀”,但我不知道如何用sed做到这一点。 编辑我已经尝试过的内容: 目录: 输入: 输出:

  • 本文向大家介绍软件缺陷等级划分?相关面试题,主要包含被问及软件缺陷等级划分?时的应答技巧和注意事项,需要的朋友参考一下 软件缺陷的等级可以用严重性和优先级来描述: 严重性:衡量缺陷对客户满意度影响的满意程度,分为 1.致命错误,可能导致本模块以及其他相关的模块异常,死机等问题; 2.严重错误,问题局限在本模块,导致模块功能失常或异常退出; 3.一般错误,模块功能部分失效; 4.建议模块,有问题提出

  • 使用 Elo 评分系统 计算两个或两个以上对手之间的新评分。它需要一个预定义数组,并返回一个包含事后评级的数组。 数组应该从最高评分到最低评分排序(赢家 -> 失败者)。 使用指数 ** 操作符和数学运算符来计算预期分数(获胜几率),并计算每个对手的新评级。对每个对手计算新的评分。 循环评分,使用每个排列组合,以成对方式计算每个玩家的 Elo 评分。 忽略第二个参数,使用默认的 k-factor