如何从相同的数据构造2列并计算比率?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从相同的数据构造2列并计算比率?相关的知识,希望对你有一定的参考价值。
我有一个包含许多表的数据库,我想根据相同的数据创建两个列,并对每个列进行不同的过滤。具体来说,我有以下SQL查询:
select count(*), A.Column1
from Table1 as A
join Table2 as B
on A.Column2 = B.Column2
where B.Column3 in (
select C.Column3
from Table3 as C
where (C.Column4=9 or C.Column4=4))
group by A.Column1
这将创建一个包含2列的表格。我想要第3列(另一个count(*)),不同之处仅在于where子句中有第3个限定符。我也想创建一个计算这两个计数列的比率的列。可以在SQL中完成吗?还是必须将数据导入R或Python并在那里进行计算?
答案
如果要两列的比率,则除以:
select count(*), A.Column1,
avg(case when ? then 1.0 else 0 end) as ratio
from Table1 A join
Table2 B
on A.Column2 = B.Column2
where B.Column3 in (select C.Column3
from Table3 C
where (C.Column4 in (4, 9)
)
group by A.Column1;
?
适用于您关心的条件。
另一答案
当匹配第二个过滤器上的条件时更改大小写。
select count(case when C.Column4 = 9 or C.Column4 = 4 then 1 else null end) as Count1
, count(case when C.Column4 = 998 or C.Column4 = 999 then 1 else null end) as Count2
, A.Column1
from Table1 as A
join Table2 as B
on A.Column2 = B.Column2
where B.Column3 in (
select C.Column3
from Table3 as C
where (C.Column4=9 or C.Column4=4))
group by A.Column1
以上是关于如何从相同的数据构造2列并计算比率?的主要内容,如果未能解决你的问题,请参考以下文章
在 Pyspark 中,我如何比较两列并在它们不相同时使用 x