gpt4 book ai didi

sql - 获取范围之间的值

转载 作者:行者123 更新时间:2023-12-02 02:20:20 25 4
gpt4 key购买 nike

越想越糊涂,可能是我写了一些复杂的sql比较久了。

我有一个表,其中包含一个值的范围。让我们称之为范围:

RANGE
RANGE_ID RANGE_SEQ MIN MAX FACTOR
1 1 0 10 1
1 2 11 100 1.5
1 3 101 2.5
2 1 0 18 1
2 2 19 2

我还有一个使用这些范围的表格。让我们称之为应用程序

APPLICATION
APP_ID RAW_VALUE RANGE_ID FINAL_VALUE
1 20.0 1 30.0 /*In Range 1, 20 falls between 11 and 100, so 1.5 is applied)*/
2 25.0 2 50.0
3 18.5 2 18.5

我想获得那些落在范围内的 RAW_VALUES。所以对于范围 2,我想要那些 RAW_VALUE 在 18 到 19 之间的 APP_ID。同样对于范围 1,我想要那些 APP_ID RAW_VALUE 介于 10 和 11 以及 100 和 101 之间。

我想知道这是否可以通过 SQL 实现,以及一些关于我可以尝试的指示。我不需要 sql 本身,只需要一些指向该方法的指针。

最佳答案

试试这个让你接近

select app_id,raw_value,aa.range_id,raw_value * xx.factor as FinaL_Value
from Application_table aa
join range_table xx on (aa.raw_value between xx.min and xx.max)
and (aa.range_id=xx.range_id)

要获得不匹配项(即表中不存在的 raw_values),试试这个

select app_id,raw_value,aa.range_id
from Application_table aa
left join range_table xx on (aa.raw_value between xx.min and xx.max)
and (aa.range_id=xx.range_id)
where xx.range_id is null

关于sql - 获取范围之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568389/

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