位置订购,最小和最大

时间:2013-03-18 17:55:39

标签: sql sql-server

我有一张这样的桌子。

表A

  

[工作地点] [工作ID] [儿童工作ID] [时间已完成] [工作顺序] [最小] [最大] [AVG]

     

1 11 100 10 Pos1

     

1 11 101 20 Pos 2

     

1 11 103 30 Pos 3

     

2 12 101 30 Pos 1

     

2 12 105 10 Pos 3

每个儿童工作ID代表每周向纽约,华盛顿或洛杉矶等特定网站的投放。

所以我需要工作,对于儿童ID 10说什么是平均位置。我在JOB ID 11中看到它在POS 1中有Child Job ID 10,在JOB ID 12中它在POS 2中,所以min是POS1,max是POS3,平均值是POS 2。

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

1 个答案:

答案 0 :(得分: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