返回字段的总数 - 按条件分组?

时间:2018-05-31 15:54:01

标签: sql mysqli

假设我有以下SQL语句......

SELECT amount FROM exampleTable

非常简单,它给了我示例表中的每一行(只是数量字段)......但我想要一些不同的东西......

而不是回到所有行,我基本上喜欢两行。我想要的是价值为正的“金额”总和的总和,以及它为负的总和。我还要为每个人返回计数。

可行吗?如果是这样,有人能告诉我一个如何做到这一点的例子吗?

在“google it”答案出来之前...我对SQL很新 - 而且我一直在看GROUP BY,sum等等 - 而且我相信我需要那些 - 但说实话,我没有让它真正起作用 - 如果有人能告诉我如何让这个工作 - 那么我可能会真正学到一些东西!

1 个答案:

答案 0 :(得分:4)

使用条件聚合

SELECT sum(case when amount < 0 then amount else 0 end) negtotal,  
       sum(case when amount > 0 then amount else 0 end) postotal,
       sum(case when amount < 0 then 1 else 0 end) negcount,  
       sum(case when amount > 0 then 1 else 0 end) poscount
FROM exampleTable;