MySQL复杂嵌套查询创建 View

标签 mysql view subquery

我想从这样的表创建一个 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. 执行运行时与默认运行时之间的比率。

问题是在查询 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/

相关文章:

mysql - 如何从 MySQL 5.1 发送电子邮件

css - 如何使用 CSS 字段样式在网格中水平居中 View 字段

android - 如何使 View 50% 透明?

MySQL 查询在子查询中添加限制

mysql : how to retrieve a list of row where one field doesn't contain a specific value from an ENUM

php - 如何保存复选框和下拉列表中的所有值

ios - 是否可以从 json 响应 swift ios 动态创建文本字段和按钮?

mysql - Sql 显示每个组中前 10 个请求的产品

带有子查询的 MySQL 更新

php - mysql IN 子句中的大数组内爆因长度而显示错误