【问题标题】:SQL Server calculate percentage of sql pivot valueSQL Server 计算 sql pivot 值的百分比
【发布时间】: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

【问题讨论】:

  • 您能否在示例数据中添加具有所需输出的列?

标签: sql sql-server pivot


【解决方案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>

      我已经按照问题中的方式添加了代码...

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多