【发布时间】:2014-05-26 16:05:58
【问题描述】:
我的表格列如下:
Table 1 (Instance Table):
Name | Id | Duration | ConfigurationID
Table 2 (Class Table):
Configuration | Id | Last Changed
在我的表 2 中,我有如下配置名称的行。名称是代码生成的。:
Test 1
Copy of Test 1
Copy of Test 1 (1)
Copy of Test 1 (2)
Copy of Test 1 (3)
...
...
Test 2
Copy of Test 2
Copy of Test 2 (1)
Copy of Test 2 (2)
Copy of Test 2 (3)
表 1 包含不同配置的实例。例如,第 1-15 行可能是配置测试 1 的实例、测试 1 的配置副本的 16 - 30 个实例等。
我想找到一个配置类型的所有实例及其所有副本的平均持续时间,即行/列,如下所示:
Row/Column 1: Avg Duration of instances of type Test 1 and all of its copies (Copy of Test 1, Copy of Test 1(1), ...Copy of Test 1 (3));
Row/Column 2: Avg Duration of instances of type Test 2 and all of its copies (Copy of Test 1, Copy of Test 1(1), ...Copy of Test 1 (3));
....
我需要一些关于如何编写 SQL 查询来完成此任务的帮助。 到目前为止,我有这个:
SELECT AVG(i.[Duration]/1000.0) as [Avg Duration (s)]
FROM [Table 1] i
LEFT OUTER JOIN [Table 2] p
ON i.[ConfigurationID] = p.Id
WHERE i.Name LIKE '(Copy of)%'
GROUP BY i.Name
【问题讨论】:
-
所以,知道一个配置是否是另一个配置的唯一方法是因为
Copy of前缀?,这不是一个好方法。例如,我怎么知道Copy of Test 11 (1)不是Test 1的副本? -
另外,您使用的是 MySQL 还是 SQL Server?请使用适当的标签
标签: mysql sql sql-server database