PostgreSQL和多个匹配行

阿尔弗雷德·鲍尔

我正在制定一种汽车统计解决方案,需要每行驶一公里就收费一次。

我有下表:

table: cars
columns: car_id, km_driven

table: pricing
columns: from, to, price

cars表中的内容可以是:

car_id, km_driven
2, 430
3, 112
4, 90

pricing桌子上的内容可以是:

from, to, price
0, 100, 2
101, 200, 1
201, null, 0.5

这意味着前100公里的价格为每公里2美元,接下来的100公里的价格为每公里1USD,以上所有价格为0.5美元。

有没有一种逻辑和简单的方法来为我的过cars计算成本PostgreSQL

因此,如果acar驱动了ex。201,那么价格将是100x2 + 100x1 + 0.5,而不是简单地201x0.5

戈登·利诺夫

我将查询写为:

select c.car_id, c.km_driven, 
   sum(( least(p.to_km, c.km_driven) - p.from_km + 1) * p.price) as dist_price
from cars c join
     pricing p
     on c.km_driven >= p.from_km
group by c.car_id, c.km_driven;

这是db <> fiddle

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PostgreSQL插入多个表和行

从函数PostgreSQL返回多个列和行,而不是记录

打印匹配和匹配行

在SQLite中选择多个条目,其中多个行需要匹配相同的条件(包括AND,OR和NOT)

具有多个行和可变列数的Excel索引和匹配求和

使用dplyr通过多个行和列匹配子集数据帧

使用Grep和Regex在一行上搜索多个匹配项

匹配至少一个字符和零个或多个新行

搜索和计数匹配行

查找匹配的行和空白

行和列的索引匹配

从匹配行打印匹配行和第n行

使用Watir匹配和排除多个班级

索引与通配符和多个条件匹配

Javascript RegExp匹配和多个反向引用

将 <tr>..</tr> 与多个新行匹配

删除由多个值匹配的行

xml与单个csv行的多个匹配(xmlstarlet)

多个行匹配的SQLite查询测试

麻烦,循环多个匹配的行非常慢,

SQL匹配多个行的重复项

在匹配行之前打印第n行,匹配行和匹配行中的第n行

Postgresql 查询 - 使用 ANY 查询和 LIKE 时为每个结果行返回所有匹配的搜索词

PostgreSQL交叉表:月行和天列;错误的rowid数据类型与返回的rowid数据类型不匹配

grep 在匹配记录前返回匹配行和 n 行

vscode 跨文件查找和替换,如果同一行中有多个匹配项,则重复反向引用

如何在 SQL 中连接和联合多个表,同时只保留一次不匹配的行

oracle sql查询在与列1和2匹配的第3列中查找具有多个值的行

PostgreSQL我喜欢Rails ActiveRecord中的多个匹配项