我有一个巴士站数据集,我想绘制到Carto上。数据集包括关于公交车站的属性列,我想创建一个名为Rating的新列,该列将根据这些属性(公交车站是否有路线图或行人友好程度)进行评级。
首先,我使用此sql代码创建了一个名为rating的新列。
alter table metro_bus_stops
add rating int NOT NULL DEFAULT(0)
然后,我使用以下代码为有自行车架的公交车站增加3个点(attribute = bstp_has_bkrs)
update metro_bus_stops
SET rating = rating + 3
WHERE bstp_has_bkrs = 'Y'
我总共有27个属性可以在评分中加或减积分。我想最终根据这些评分在Carto上映射公交站点。有没有更好的方法来处理这个而不是单独为每个属性添加计算?我想知道我是否可以使用if else语句在Python中做得更好。
This是我正在使用的巴士站数据,如果有帮助的话。
任何反馈都将不胜感激!
答案 0 :(得分:1)
您可以将任意数量的列组合到SQL语句中,并将它们与AND和OR等逻辑运算符组合在一起。这应该是最简单的方法,例如:
update metro_bus_stops
SET rating = rating + 3
WHERE bstp_has_bkrs = 'Y'
OR attribute2 = value2 AND
AND attribute3 > value3
OR ...