求和在另一列上筛选的列


sum a column filtered on another column

我正在尝试获取被另一列筛选的列的总和(该列的不同值)。我尝试过"分组"、"不同"、"带汇总"和许多其他变体。我有一堆显示客户链接的专栏。大多数服务都有冗余的一面,尽管有些服务没有冗余。我试图获得整个"fnn"列的带宽总数,但如果存在冗余边值,则排除该值。如果存在冗余,则它将通过具有相同的fnn(和相同的带宽值)来指示。

我已经为此奋斗了很长时间。任何帮助都将是美妙的。mysql或php中的解决方案。

我的桌子看起来像:

table name = cust_child
    id | cust_name |cp_bw|cp_fnn |other_columns  
    1  | A         | 30  | 11    |xxx   
    2  | A         | 30  | 11    |xxx 
    3  | B         |100  | 22    |xxx
    4  | B         |100  | 22    |xxx
    5  | C         |50   | 33    |xxx
Result should look like:
    Total bandwidth = 180
SELECT SUM(c.cp_bw) AS bandwith
FROM cust_child c
 INNER JOIN (
   SELECT c.id
   FROM cust_child c
   GROUP BY c.cp_fnn
 ) t1 ON (t1.id = c.id)

http://sqlfiddle.com/#!2/01219/1