sql - SQL Pivot 分组依据?
问题描述
我有一个工作数据透视表,但我想知道是否有办法按数据透视表分组。对于我有的数据透视表代码...
SELECT * FROM
(SELECT
UserPivot.[parties]
,UserPivot.[Accounts]
,UserPivot.[CurrentAmount]
,UserPivot.[Plus / Negative]
FROM UserPivot) AS BaseData
PIVOT(
SUM(BaseData.[CurrentAmount])
FOR BaseData.[parties]
IN([Toms])
) AS PivotTable
一旦运行,我得到...
Accounts | Plus / negative | Toms
Bank plus 100
Bank negative 60
以上是正确的,我需要 [plus/negative] 列来显示用户发生的所有操作!但我会添加一个分组依据来显示一个帐户的总和,并将它们按不同的帐户类型分组,例如我想要以下结果......
Accounts | Toms
Bank 40
这也是通过数据透视表完成的,这一点很重要。
谢谢大家的建议!
解决方案
不要为此使用枢轴。只需使用条件聚合:
SELECT UserPivot.Accounts,
SUM(CASE WHEN UserPivot.[Plus / Negative] = 'plus' THEN UserPivot.CurrentAmount
WHEN UserPivot.[Plus / Negative] = 'negative' THEN
- UserPivot.CurrentAmount
END) as net_amount
FROM UserPivot
GROUP BY UserPivot.Accounts;
推荐阅读
- javascript - ng-repeat 渲染的 Chart.js 画布不显示图表
- ruby-on-rails - 更新单个子记录时触发更新到父记录,子记录可以一次更新,如何管理效率
- postgresql - 如何修复编码错误以使用 psql 上传 5GB 文本文件?(错误:编码“UTF8”的字节序列无效:0x92)
- arrays - 如何在 Jenkins Groovy Pipeline 中创建和循环字符串的 ArrayList
- node.js - 获取 express/node 以循环发送到 NOAA API 的请求
- python - 为什么在 if 语句中使用整数变量?
- react-native - 如何从反应原生 webview 中的 URL GET 参数中获取值?
- python - Pygame 问题:我的玩家图像不随滚动而移动
- ios - 从另一个应用程序中触发一个功能
- machine-learning - 聚类系列事件