如何从相同的数据构造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

如何在角度2中将数据从父构造函数传递到子组件

更新列并从更新的 col 更新另一个 col

iOS 约束。如何通过约束设置图像视图高度比率等于图像比率?

选择 2 列并合并数据

比较两个列并从同一个表中的另一列获取数据