我正在尝试从 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