如何设置行数并计算条件结果?

时间:2019-04-12 17:25:16

标签: sql snowflake

我正在尝试从设置的100个结果中计算条件的数量。

示例:在最近设置的100个动作中,“ X”有多少个?

我不太确定从哪里开始。

我对SQL还是很陌生,我已经尝试了内部联接,子查询等,但是似乎无法弄清楚。我觉得这很简单。

谢谢!

2 个答案:

答案 0 :(得分:2)

为此,您只需要sum向上case语句来检查该值。但是,如果您只想对100行执行此操作,则需要针对derived table(或公共表表达式,如果RDBMS支持)执行此查询以限制行数。

以下是适用于大多数RDBMS的示例(根据您的RDBMS,您可能需要将TOP替换为LIMIT

select
    sum(
        case 
            when (my_val='X') then 
                1
            else 
                0 
        end
    )
from
    (
        select top 100 
            my_val
        from
            my_table
    ) t

答案 1 :(得分:1)

@RToyo的答案适用于任何DBMS。

在Snowflake中,您可以使用IFF稍微简化一下操作:

select
    sum(IFF(my_val='X', 1, 0))
from
    (
        select top 100 
            my_val
        from
            my_table
    ) t