MySQL 如何对不同维度的两张表关联计算baseline与perc列的乘积
注:以下语句中baseline_tbl为存储baseline值的表名,conf_perc_tbl为存储配置perc的表名,你可以替换为自己实际使用的表名。
由于存储baseline的表仅包含1行数据,直接关联计算即可,两种常用实现方式如下:
方式1:交叉连接实现
SELECT cp.conf_name, cp.perc, cp.perc * b.baseline AS target FROM conf_perc_tbl cp CROSS JOIN baseline_tbl b;
方式2:子查询实现(更稳妥)
SELECT conf_name, perc, perc * (SELECT baseline FROM baseline_tbl LIMIT 1) AS target FROM conf_perc_tbl;
两种写法都可以得到你预期的输出结果,其中方式2不需要关联表,即使后续baseline表意外新增多行数据,也只会取第一行的baseline值计算,不会出现结果行数翻倍的问题。
内容的提问来源于stack exchange,提问作者Nee
相关产品推荐
相关产品推荐

