2012-03-19 65 views
0

假定我们如下表具有:SQL申请合计平均有条件

index value 
1  55 
2  66 
3  77 
1  88 
3  99 

如何可以总结(值)时索引= 1个或索引= 3,并且平均(值)当索引= 2的一个选择声明?

+0

什么是您预期的结果(以表格形式)? – 2012-03-19 15:23:47

回答

3

轻松:

SELECT index, CASE WHEN index IN (1, 3) THEN SUM(value) ELSE AVG(value) END 
FROM yourTable 
GROUP BY index 
+0

谢谢,我以前不知道有病例陈述。 – karpar 2012-03-19 16:39:25

+0

不客气! – 2012-03-19 18:03:07

1
SELECT sum(value) as agg, 
     'S' as aggregateType 
FROM DaTAble 
WHERE index IN (1, 3) 

UNION ALL 

SELECT avg(value) as agg, 
     'A' as aggregateType 
FROM DaTAble 
WHERE index = 2