mysql - SQL:我们可以选择一列中的内容作为新表中的新列吗?
问题描述
这是一个例子: 输入:
company amount vendor ID(ai)
A1 100 B1 1
A2 150 B1 2
A3 200 B2 3
A1 100 B3 4
输出:
vendor A1 A2 A3 Total
B1 100 150 NULL 250
B2 NULL NULL 200 200
B3 100 NULL NULL 100
解决方案
看起来你想要条件聚合:
select vendor,
sum(case when company = 'A1' then amount end) as a1,
sum(case when company = 'A2' then amount end) as a2,
sum(case when company = 'A3' then amount end) as a3,
sum(amount) as total
from t
group by vendor;
推荐阅读
- ibm-cloud - 无法通过 IBM 云 cli 将应用程序推送到 IBM 云
- mysql - 删除 MySQL/PhpMyAdmin 默认用户,现在有错误
- c++ - 类继承默认构造函数不能被引用
- android - 使用改造注册并处理单选按钮和微调器
- sql-server - 在 SQL Server 中连接两个表时获取更多记录
- python - 检查瞬态模型实例的“如果已修改”
- python - 如何找到 Sprite 和屏幕角之间的距离(以像素为单位)?
- ruby-on-rails - 面临在 Ubuntu 18 上使用 rails 安装 Heroku CLI 的问题
- firebase - 设置 Firebase 实时数据库规则
- bash - 用 ':' 将行尾替换为一行(SED 或 AWK 或其他)