对在另一列上过滤的列进行求和

时间:2015-02-18 10:38:02

标签: php mysql

我正在尝试获取由另一列过滤的列的总和(该列的不同值)。我尝试过“分组”,“不同”,“汇总”以及许多其他变体。我有一堆显示客户链接的列。大多数服务都有冗余,但有些服务没有冗余。我试图获得整个“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

1 个答案:

答案 0 :(得分:1)

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