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



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

示例:在最后一组的 100 个操作中,有多少是针对"X"的?

我不太确定从哪里开始。

我对SQL相当陌生,我尝试过内部连接,子查询等,但我似乎无法弄清楚。我觉得这是相当简单的事情。

谢谢!

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

下面是一个在大多数RDBMS中工作的示例(您可能需要将TOP替换为LIMIT,具体取决于您的RDBMS):

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

@RToyo的答案涵盖了任何DBMS。

在 Snowflake 中,您可以使用IFF稍微简化它:

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

相关内容

  • 没有找到相关文章

最新更新