如何解决使用Teradata按组计算百分比
我正在尝试创建一个表,该表显示取决于指示器的每个状态的计数百分比。
这是我用来创建新表的数据集的示例。
+-------------+-------+-------+
| 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;
这不起作用,因为我收到一个错误:“子查询评估了多个行。”我猜是因为我没有考虑在when语句的情况下的状态,但是我不确定该如何处理。
什么是最好的方法?
解决方法
您可以使用窗口功能:
"endDate"
,
只需将桌子与自己连接起来即可。
OrderID
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。