如何选择一个输出与 excel 函数相同的变量:
COUNTIFS(A1:D1,"<25", A1:D1, ">16")?
即计算我的四个字段中的值在 16 到 25 之间的次数。
原文由 amsbam1 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 case
在 SQL 查询中执行此操作:
select sum(case when col between 16 and 25 then 1 else 0 end)
from t;
请注意, between
在 SQL 中是包含的,而不是排他的,所以根据您的代码逻辑:
select sum(case when col > 16 and col < 25 then 1 else 0 end)
from t;
原文由 Gordon Linoff 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1.4k 阅读
您可以使用
count()
和case
表达式来执行此操作。注意:case
有一个可选的else
子句;如果不使用,则默认else
“value” 为null
。 Count 只计算非空值,因此您可以结合这些观察来编写紧凑的代码。计算什么并不重要;所以case
表达式可能会返回一个数字(通常为 1,但 0 也同样有效,并且会给出相同的结果,因为这些值是计数的,而不是求和的) - 但你也可以有一个字符串,如’x’ 或 case 表达式中的日期。为了说明这一点,我将使用一个字符串。这里
your_table
是表的名称,col
是包含值的 列 的名称,而ct
是结果列的名称(标签满足您的条件的值的计数)。当然,在数据库中您可以更轻松地获得相同的结果:
但请注意,这些值在一列中。
相反,如果您有一个包含四列和多行的表,并且所有列中的所有值都是数字,并且您想添加一列来显示每行中有多少值严格在 16 到 25 之间,则解决方案是不同的(但是它使用相同的想法):