mysql - 返回字段的总计 - 按条件分组?
问题描述
假设我有以下 SQL 语句......
SELECT amount FROM exampleTable
很简单,这给了我示例表中的每一行(只是金额字段)......但我有点想要一些不同的东西......
而不是取回所有的行,我基本上想要两行。我想要的是价值为正的“金额”总和的总和,以及它为负的总和。我还想返回每个的计数。
那可行吗?如果是这样,有人可以向我展示我如何做到这一点的例子吗?
在“google it”答案出现之前……我对 SQL 很陌生——我一直在研究 GROUP BY、sum 等——我相当有信心我需要这些——但老实说,我没有t 让它真正起作用 - 如果有人能告诉我如何让它起作用 - 那么我可能真的学到了一些东西!
解决方案
使用条件聚合
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;
推荐阅读
- git - 有没有办法从命令行获取拉取请求中的所有更改?
- c# - 在 VS 2019 中调试 React App 和 ASP.Net MVC 5 API
- google-codelab - 如何在 claat 中为代码实验室制作自己的模板
- java - 术语“-alias”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
- assembly - 汇编语言:小写字符串转大写
- docker - WSO2 API 管理 - Docker Compose - 使用默认参数安装后登录错误
- go - 使用 go-colly 抓取时 noscript 的问题
- excel - 清除查询表的内容时,如何防止查询表被删除?
- elasticsearch - 在弹性搜索中搜索子字符串
- r - 有没有办法根据一列的条件提取行?