我想从这样的表创建一个 View :
Configuration | Size | Runtime
0 | 10 | 32.5
1 | 10 | 30.8
2 | 10 | 40.1
0 | 20 | 61.0
1 | 20 | 65.3
2 | 20 | 56.8
其中配置号 0 是特殊的(它是默认配置),它是 存在于每组“尺寸”值中。 我的目标是创建一个像这样的 View :
Configuration | Size | Speedup
0 | 10 | 1.0
1 | 10 | 1.05
2 | 10 | 0.81
0 | 20 | 1.0
1 | 20 | 0.93
2 | 20 | 1.07
对于具有相同大小的每组行,我希望找到默认配置(由数字 0 标识),然后计算所考虑的行的运行时间与默认运行时间之间的比率。
这可以分为两个查询:
- 查找给定“大小”的默认运行时
- 执行运行时与默认运行时之间的比率。
问题是在查询 1 中(应该是查询 2 的 select 语句中的子查询),我不知道我当前正在考虑哪个“大小”。 我希望你明白我的意思。
我有办法解决这个问题吗?
最佳答案
您可以使用的另一种方法是子选择:
CREATE VIEW yourview AS
SELECT
Configuration,
Size,
(SELECT Runtime
FROM yourtable AS T2
WHERE T1.Size = T2.Size
AND T2.Configuration = 0) / Runtime AS SpeedUp
FROM yourtable AS T1
查看它在线运行:sqlfiddle
关于MySQL复杂嵌套查询创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382946/