根据距离范围计算速率

假名

我一直在为一个具有以下表格结构的项目工作

开始 结束| 
------------------ 
   1 | 50 | 10 
  51 | 100 | 20 
 101 | 150 | 40 
 151 | 200 | 80 
 201 | 0 | 100

在这里,最后一个记录意味着200到无穷大的比率为100

在这里,我必须根据用户给定的起始值和终止值来计算总费率

我已经在mysql中尝试以下查询作为输入开始-30,结束-170

SELECT SUM((end+1 - start) * amount) 
FROM table 
WHERE start > 30
AND end < 170

它只给出第二和第三条记录值的总和,然后我必须分别查询第一条和最后一条记录。

如何在单个查询中实现?

lc。

假设我们声明了以下两个参数:

set @start = 30, @end = 170;

首先,获取属于您范围(重叠)的行,我们将这样做(SQL Fiddle):

select start, end
from Table1
where start <= @end OR end >= @start

然后,我们对第一行和最后一行的范围的开始和结束进行按摩。基本上,我们将范围的第一部分@start@endSQL Fiddle的范围的第二部分分别为上限

select CASE WHEN @start > start THEN @start ELSE start END AS start, 
    CASE WHEN @end < end THEN @end ELSE end END AS end
from Table1
where start <= @end OR end >= @start

然后,我们可以减去这两个案例表达式以获得距离。而且,如果您想要包含的距离,请不要忘记加1 SQL Fiddle):

select CASE WHEN @end < end THEN @end ELSE end END - CASE WHEN @start > start THEN @start ELSE start END + 1 AS dist
from Table1
where start <= @end OR end >= @start

乘以速率。这次不要忘记括号,因为乘法优先(SQL Fiddle):

select rate * (CASE WHEN @end < end THEN @end ELSE end END - CASE WHEN @start > start THEN @start ELSE start END + 1)
from Table1
where start <= @end OR end >= @start

最后,SUM将整个表达式拍一圈以将其全部加起来(SQL Fiddle):

select SUM(rate * (CASE WHEN @end < end THEN @end ELSE end END - CASE WHEN @start > start THEN @start ELSE start END))
from Table1
where start <= @end OR end >= @start

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据距离范围计算速率

来自分类Dev

根据距离计算价格

来自分类Dev

根据坐标计算距离

来自分类Dev

javascript:根据3个距离范围计算出租车费用

来自分类Dev

如何根据纬度和经度计算距离

来自分类Dev

根据距离和方位计算点/坐标

来自分类Dev

根据图片计算实际宽度,知道距离

来自分类Dev

根据提示存储坐标并计算距离

来自分类Dev

根据新的帧速率计算帧索引以生成视频

来自分类Dev

根据新的帧速率计算帧索引以生成视频

来自分类Dev

根据日期范围计算天数

来自分类Dev

根据计算出的坐标之间的距离选择数据

来自分类Dev

根据R中的经纬度坐标计算距离

来自分类Dev

根据x,y,z坐标计算欧几里得距离矩阵

来自分类Dev

根据 google api 计算的距离订购 php/mysql 结果

来自分类Dev

在Sql中,如何根据范围计算值?

来自分类Dev

Python根据日期范围计算新日期

来自分类Dev

根据熊猫数据框的字段计算范围

来自分类Dev

根据GPS坐标计算Esri地图范围

来自分类Dev

在DataFrame中计算速率

来自分类Dev

(速度挑战)根据通用汉明距离,有没有更快的方法来计算距离矩阵?

来自分类Dev

SQL根据范围的相等等位来计算存储桶

来自分类Dev

根据单元格条件和值计算范围的总和

来自分类Dev

根据多个变量(范围,增量,等级)计算价格

来自分类Dev

根据熊猫的日期范围计算定性值

来自分类Dev

根据R中的日期时间范围计算重复项

来自分类Dev

pandas 数据框根据列范围和值计算多行

来自分类Dev

余弦距离范围解释

来自分类Dev

根据移动物体到目标的距离来计算其速度