mysql:选择多个数据集并求和

时间:2016-03-22 10:17:28

标签: mysql

我在表'example'中有以下数据方案:

State | Identifier | Data  
true  |     A      |  60  
false |     B      |  20  
false |     A      |  10  
true  |     C      |  20  
true  |     A      |  40  
true  |     B      |  9  
true  |     C      |  30  
false |     A      |  60  

我想要的是获得每个标识符的总和,例如,如果其状态为真。

例如,A的总和为100,B的总和为9,C的总和为50。 对于单个标识符,我的sql查询看起来像

SELECT SUM(data) FROM example WHERE state = false AND identifier = "A"

效果很好。

但是,由于所需的标识符将通过可以通过复选框选择的表单来传递,因此标识符的数量和值会发生变化。 我想得到所选标识符A和C的结果,例如显示为A=100 and C=50

有什么想法吗?

提前致谢,

devyn

3 个答案:

答案 0 :(得分:0)

您需要GROUP BY子句,请使用此

SELECT Identifier, SUM(data) FROM example WHERE state = 'false' GROUP BY Identifier 

我希望这适合你。

答案 1 :(得分:0)

您可以对列Identifier返回的行进行分组,即:

SELECT
    SUM(Data)
FROM
    example
WHERE
    State = false AND
    Identifier = "A"
GROUP BY
    Identifier

答案 2 :(得分:0)

获得一行的结果,您可以使用条件聚合

SELECT SUM(CASE WHEN identifier = 'A' THEN data END) AS A_data,
       SUM(CASE WHEN identifier = 'B' THEN data END) AS B_data,
       SUM(CASE WHEN identifier = 'C' THEN data END) AS C_data
FROM example 
WHERE state = false