SQL计算列中其他列值多次出现的值的总和

时间:2016-07-27 14:40:40

标签: php mysql sql

我有2个表作为示例(D和F列与此无关,只是为了显示真实表中有更多列):

| A | B | C |
|123| 1 | 3 |
|456| 2 | 1 |
|123| 3 | 2 |

| a | D | E | F    |
|123| & |Ana|apple |
|456| * |Eva|pear  |
|789| % |Ola|orange|

" A"和" a"表示链接表格的值。

我希望在我的页面上显示一个表,该表在C列中添加值的总和,其中A中的行具有多个相同的值。

这意味着上面的行A = 123的例子,在该列中出现两次,将在一行中显示总共5个(两行中C列的值总计为5. 2 + 3 = 5)。对于A = 456,总数将等于1,因为456在A列中仅出现一次,并且该出现在C列中的值为1,如上所示。

所需的最终结果是如下表:

| a | E | D | c |
|123|Ana| & | 5 |
|456|Eva| * | 1 |

其中" c"象征着我想要的总数。

在SQL查询中有一个很好的方法可以在我的页面帮助PHP的情况下进行简单的输出吗?

3 个答案:

答案 0 :(得分:1)

如果我理解你正在寻找什么,你可能想要使用一些有助于这种情况的SQL函数。

select a, E, D, sum(C) as c 
from t1 INNER JOIN t2 on t1.A = t2.a 
group by a, E, D

sum()将为a,E和D的每个独特出现总结C的值

答案 1 :(得分:0)

你应该写点像

select A, sum(C) from first_table group by A

如果要将其与第二个表的值组合,则应使用join

答案 2 :(得分:0)

我明白了

从demo2中选择a,sum(c),其中a = a by a;

http://i.stack.imgur.com/ZyEqU.png