我在表'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
答案 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