特别小组由&SUM

问题描述:

我有具有以下字段的表: ID, S, W和数据一样:特别小组由&SUM

1,s1,w1 
1,s2,w1 
1,s3,w2 
2,s4,w2 

我想计算S的SUM每个ID只对W = w1和零作为结果对于没有任何w1数据的其他ID。在这个例子中我得

1, s1+s2, w1 
2, 0, null or 0 

这意味着,如果ID有W1只显示这一些,但如果ID = 2只有W的W1显示不同它。 我试过

SUM(CASE W = w1 THEN S ELSE 0 END) AS S GROUP BY ID, W 但是不要怎么显示W?我希望我清楚的是UDF的一部分,其中涉及很多其他表格。任何帮助将不胜感激。

请问以下为您工作?

Select id, SUM(CASE W = w1 THEN S ELSE 0 END) over(Partition by id order by 1) total, W from yourtable 
+0

我应该怎样做分区,以摆脱掉1,S3?我如果我可以申请我的真实证件,认为你的解决方案应该有效颂。谢谢你的帮助 – 2013-04-11 18:08:23

能“T优有第二个Case语句类似情况下,当W = W1则W ELSE 0 END为W

+0

它不会删除1,0 W2。如果我添加当W = W1我松2,0 – 2013-04-11 18:03:38

如果我理解正确的,你想:??

SELECT ID, 
     SUM(CASE WHEN W = 'w1' THEN S ELSE 0 END) AS S, 
     CASE WHEN W = 'w1' THEN W ELSE 0 END AS W 
FROM YourTable 
GROUP BY ID, 
     CASE WHEN W = 'w1' THEN W ELSE 0 END