mysql - 如何计算数据库列结果并将它们分组以实现可管理的输出
问题描述
我正在尝试以一种简单的方式进行计算,以使我能够管理以下数据库表:
code ----- companyID ----- bought----- returned
abcd ----- 32 ----- 1 ----- 0
efgh ----- 32 ----- 1 ----- 1
ijkl ----- 58 ----- 1 ----- 1
mnop ----- 65 ----- 1 ----- 0
我正在尝试使用此查询获得所需的(以下结果)
SELECT COUNT(*) AS bought, companyID FROM table
WHERE bought= 1 AND refunded = 0
UNION ALL
SELECT COUNT(*) AS returned, companyID FROM table
WHERE returned= 1
GROUP BY companyID
这是错误的。
这是所需的输出:
companyID ----- codesTotal ----- boughtTotal ----- returnedTotal
32 ----- 2 ----- 2 ----- 1
58 ----- 1 ----- 1 ----- 1
65 ----- 1 ----- 1 ----- 0
companyID 的行数必须等于 buyTotal。
如何编辑代码以实现此目的?
解决方案
这是你想要的吗?
select companyid,
count(*) as num_codes,
sum(bought) as num_bought,
sum(returned) as num_returned
from t
group by companyid;
推荐阅读
- node.js - 发送大Json时NodeJS socket.IO断开连接
- c# - 只能采用某些类型的泛型类
- maxima - Maxima 中的规范形式
- ruby - 您的 Ruby 版本是 2.3.3,但您的 Gemfile 指定了 2.5.1
- html - 在不同的分辨率下改变 flexbox-direction
- java - 如何从 UDP 广播接收多个响应
- java - 升级到 Edgware.SR3 时没有 RsaProperties 类型的合格 bean
- xcode - 命中断言失败:(NSViewIsCurrentlyBuildingLayerTreeForDisplay() != currentBuildingLayerTree)
- url - 在报告运行后更改 SSRS 参数值。这可能吗?
- php - 使用 foreach 循环更新数据库行