php - 对另一列过滤后的列求和

标签 php mysql

我正在尝试获取由另一列(该列的不同值)过滤的列的总和。我尝试过“group by”“distinct”“with rollup”和许多其他变体。我有一堆显示客户链接的列。大多数服务都有冗余端,但有些服务没有冗余。我试图获取整个“fnn”列的带宽总计,但排除冗余侧值(如果存在)。如果存在冗余,则通过具有相同的fnn(和相同的带宽值)来指示。

多年来我一直在为此苦苦挣扎。任何帮助都会很棒。 mysql或php中的解决方案。

我的 table 看起来像:

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

关于php - 对另一列过滤后的列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581494/

相关文章:

php - move_uploaded_file() 函数在引用另一个页面时不起作用

php - 从文本中删除所有 HTML 标签+内容

javascript - 如何将变量从 PHP 的 while 循环传递给 JavaScript?

mysql - 即使该列存在于 mysql 表中,也会出现未知列错误

mysql - 在mysql中根据给定字符串查找相似记录

mysql - 从其他表中插入一些值

php - 嵌套集添加点头得到错误

php - 如何将本地 MySQL 数据库导入 Web 服务器

MySQL:更好地存储数组/json 或创建不同的行?

MYSQL max(timestamp) 返回与 max(id) 不同的结果