-1

我有一张这样的桌子。

表 A

[作业批次] [作业 ID] [子作业 ID] [完成时间] [完成的作业顺序] [最小] [最大] [AVG]

1 11 100 10 位置 1

1 11 101 20 位置 2

1 11 103 30 位置 3

2 12 101 30 位置 1

2 12 105 10 位置 3

每个子作业 ID 代表每周向特定站点(如纽约、华盛顿或洛杉矶)的交付。

所以我需要计算出孩子 ID 10 的平均位置是多少。我在作业 ID 11 中看到它在 POS 1 中有子作业 ID 10,在作业 ID 12 中它在 POS 2 中,所以最小值是 POS1,最大值是 POS3,平均值是 POS 2。

如何计算 sql 中所有 CHILD JOB ID 的最小值、最大值和平均值?

4

1 回答 1

2

如果您只在字段中存储 POS 编号,那么 SQL 很简单。

Select CHILD_JOB_ID, MIN(POS), MAX(POS), AVG(POS)
from table-name
group by CHILD_JOB_ID

如果 POS 字段有一个带有 'POS' 前缀的字符串,那么您可能会从

Select CHILD_JOB_ID,
       MIN(SUBSTRING(POS, 5, LEN(POS)),
       MAX(SUBSTRING(POS, 5, LEN(POS)),
       AVG(SUBSTRING(POS, 5, LEN(POS))
from table-name
group by CHILD_JOB_ID
于 2013-03-18T18:14:42.300 回答