【发布时间】:2020-12-03 16:00:57
【问题描述】:
我正在尝试创建一个表格,显示取决于指标的每个状态的计数百分比。
这是我用来创建新表的数据集示例。
+-------------+-------+-------+
| Indicator | State | Count |
+-------------+-------+-------+
| Registered | CA | 25 |
| Registered | FL | 12 |
| Total | CA | 50 |
| Total | FL | 36 |
+-------------+-------+-------+
我正在尝试创建一个新表,其中每个对应行都有一个百分比,如下所示:
+-------------+-------+-------+------------+
| Indicator | State | Count | Percentage |
+-------------+-------+-------+------------+
| Registered | CA | 25 | 50 |
| Registered | FL | 12 | 33.3 |
| Total | CA | 50 | . |
| Total | FL | 36 | . |
+-------------+-------+-------+------------+
到目前为止,我已尝试执行以下查询:
select indicator, state, count
, case when (select count from table where indicator='Registered') * 100 / (select count from table where indicator='Total')
when indicator = 'Total' then . end as Percentage
from table;
这不起作用,因为我收到一个错误:“子查询评估了不止一行。”我猜是因为我没有考虑 case when 语句中的状态,但我不确定我会如何去做。
最好的方法是什么?
【问题讨论】:
-
您不只是在 Indicator='Total' 的记录集和其余记录之间进行连接吗?