0

我的数据格式如下:

TASK, STATUS
MKw11sk, OPEN
JIKL, CLOSED
pp,DELETED
qwert,PRESENT
DDF,OPEN

我正在尝试按状态查找百分比。我想知道状态栏的百分比

我是新手!通常我可以计算整数类型值的百分比,我不必计算这个唯一的字符串计数

4

1 回答 1

0

问题是表中每个状态值的百分比是多少?您可以使用窗口函数并为每一行获取正确的值,如下所示:

with input (TASK, STATUS) as (
SELECT 'MKw11sk', 'OPEN' UNION ALL
SELECT 'JIKL', 'CLOSED' UNION ALL
SELECT 'pp', 'DELETED' UNION ALL
SELECT 'qwert', 'PRESENT' UNION ALL
SELECT 'DDF', 'OPEN'
    )
select *,
   count(STATUS) over (partition by STATUS) * 100 / count(STATUS) over () as status_percent
from input;

返回

任务 地位 状态百分比
JIKL 关闭 20
MKw11sk 打开 40
DDF 打开 40
奎特 当下 20
pp 已删除 20

或者,您可以使用这样的平原GROUP BY

with input (TASK, STATUS) as (
    SELECT 'MKw11sk', 'OPEN' UNION ALL
    SELECT 'JIKL', 'CLOSED' UNION ALL
    SELECT 'pp', 'DELETED' UNION ALL
    SELECT 'qwert', 'PRESENT' UNION ALL
    SELECT 'DDF', 'OPEN'
)
select STATUS,
       count(*) * 100 / (select count(*) from input) as status_percent
from input
group by 1

返回

地位 状态百分比
已删除 20
打开 40
当下 20
关闭 20
于 2021-01-06T19:37:30.973 回答