2013-03-18 175 views
-1

我有这样的桌子。POSITION ORDERING,MIN AND MAX

表A

[很多工作] [作业ID] [子作业ID] [完成时间] [已完成作业的顺序] [最小值] [最大值] [AVG]

1 11 100 10 POS1

1 11 101 20 2名次

1 11 103 30位置3

2 12 101 30名次1

2 12 105 10位置3

每个子作业ID表示输送到每星期的特定位点,如纽约,华盛顿或LA。

所以我需要努力工作,说儿童ID 10什么是平均位置。我在JOB ID 11中看到它在POS 1中具有子作业ID 10,而在JOB ID 12中它在POS 2中,所以最小值是POS1,最大值是POS3,平均值是POS 2.

我计算出SQL中所有CHILD JOB ID的最小值,最大值和平均值?

+4

结果你能正确地格式化的数据? – 2013-03-18 17:58:58

+0

因此,我必须根据上面的文本中的逻辑来计算最小值,最大值和平均值列。 – 2013-03-18 21:01:42

+0

并且当前格式不可读 – 2013-03-18 21:06:01

回答

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 
+0

min,max和avg列中没有值。在此表中仅填写完成的作业订单。 – 2013-03-18 21:03:50

+0

对不起,这不起作用。道歉可能我对这个问题非常清楚。希望现在更清楚。 – 2013-03-18 21:56:01