我有一张这样的桌子。
表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的最小值,最大值和平均值?
答案 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