假设我有以下SQL语句......
SELECT amount FROM exampleTable
非常简单,它给了我示例表中的每一行(只是数量字段)......但我想要一些不同的东西......
而不是回到所有行,我基本上喜欢两行。我想要的是价值为正的“金额”总和的总和,以及它为负的总和。我还要为每个人返回计数。
可行吗?如果是这样,有人能告诉我一个如何做到这一点的例子吗?
在“google it”答案出来之前...我对SQL很新 - 而且我一直在看GROUP BY,sum等等 - 而且我相信我需要那些 - 但说实话,我没有让它真正起作用 - 如果有人能告诉我如何让这个工作 - 那么我可能会真正学到一些东西!
答案 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;