SQL Server 计算 sql pivot 值的百分比
Posted
技术标签:
【中文标题】SQL Server 计算 sql pivot 值的百分比【英文标题】:SQL Server calculate percentage of sql pivot value 【发布时间】:2012-02-10 13:02:57 【问题描述】:我目前有一个 SQL Server 数据透视表,其中包含每个月和每个 input sales
的值
我想计算input_sales = 'OK'
的百分比。
我该怎么做?
SIGNED INPUT_SALES DEALER D2D CALLCENTER INTERNET</tr>
2012-01 NOK 158 1231 309 214
2012-01 OK 417 4634 4047 1491
2011-12 NOK 301 1637 404 245
2011-12 OK 615 4195 4334 1985
我的代码:
SELECT SIGNED_DATE,
INPUT_SALES,
[DEALER] AS DEALER,
[D2D] AS D2D,
[CALLCENTER] AS CALLCENTER,
[INTERNET] AS INTERNET
FROM
(
SELECT ENTITLEMENT_ID, SALES_CHANNEL, SIGNED_DATE, INPUT_SALES
FROM #TEMP
) T
PIVOT
(
COUNT (ENTITLEMENT_ID)
FOR SALES_CHANNEL IN
([DEALER], [D2D], [CALLCENTER], [INTERNET])
) AS PVT
ORDER BY PVT.SIGNED_DATE DESC
【问题讨论】:
您能否在示例数据中添加具有所需输出的列? 【参考方案1】:试试这个:
select INPUT_SALES , cast(count(*) as numeric(5,2)) * 100 /(select count(*) from TABLE_INPUT_SALES )
from TABLE_INPUT_SALES
where INPUT_SALES ='OK'
group by INPUT_SALES
【讨论】:
【参考方案2】:应该是这样的
with total as (
select COUNT(INPUT_SALES)as id from t),
counted as (select count(INPUT_SALES) as id from t where t.INPUT_SALES='OK')
select 100.0*counted.INPUT_SALES/total.INPUT_SALES from total,counted
group by total.INPUT_SALES,counted.INPUT_SALES
希望对你有帮助
【讨论】:
我得到的结果只是 1 个数字.../p>
我已经按照问题中的方式添加了代码...
以上是关于SQL Server 计算 sql pivot 值的百分比的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server - 使用 PIVOT 查询比较 2 个表中的字段
SQL Server 2016 - 有没有办法通过使用 CASE 来做类似于 PIVOT 的事情?
SQL Server 动态行转列(参数化表名分组列行转列字段字段值)