sql - 如何将百分比计算为新行?
问题描述
我正在使用 SQL Server 2012,我正在尝试使用 PARTITION 计算目标值的百分比,但我不断收到汇总错误。百分比需要是数据集中的新行,附加到每个组的末尾
解决方案
你可以做你想做的事,尽管我怀疑它的用处:
select group, item, jan, feb
from ((select group, item, jan * 1.0 as jan, feb * 1.0 as feb
from t
) union all
(select group, 'Percent',
sum(case when item = 'Target' then jan end) * 1.0 / sum(case when item = 'Target' then jan end),
sum(case when item = 'Target' then feb end) * 1.0 / sum(case when item = 'Target' then feb end)
from t
group by group
)
) g
order by group, charindex(item, 'Target,Actual,Percent');
group
是一个保留字,所以它是一个非常糟糕的列名称。我没有费心去逃避这个名字,因为我认为这只是分散了查询逻辑的注意力。
推荐阅读
- python-3.x - Networkx:如何在图表中添加来自 csv 文件的边缘标签
- python - 将 python 从 2.7.15 升级到 2.7.18 会使用 SyntaxError 破坏 Django 应用程序(import AppConf # noqa)
- javascript - 如何在数据表烧瓶中添加按钮
- javascript - 从下拉reactjs中过滤一个值
- javascript - Redirect to another website with sweetalert2 and GET information
- mysql - MySQL中选择闰年的查询条件
- android - 重新创建android活动而不眨眼
- bash - bash "<<<" 在一行上打印多行变量
- html - 将个人资料图片保留在 flexbox 的右侧
- python - pdfkit-警告:阻止访问文件