【发布时间】:2022-12-10 18:01:56
【问题描述】:
我有一个看起来像这样的表:
ACCOUNT hour_count
A 24
B 24
C 23
D 22
我想创建一个 sql 语句,当所有条件都满足时只返回“1”:
when account is A, hour_count = 24
when account is B, hour_count = 24
when account is C, hour_count > 22
when account is D, hour_count > 22
我怎样才能做到这一点?
我尝试使用 CASE 语句,但我做不到 if 弄清楚如何包含多个条件。它不适用于单个 WHEN 语句中的 AND:
SELECT
CASE
WHEN ((ACCOUNT = 'A' AND hour_count = 24) )
THEN 1
END
FROM hour_counts
【问题讨论】:
-
满足其中一个条件还是全部满足需要返回1?
-
当大家见面的时候。 @JHH
-
它应该那样工作。你的错误是什么?
-
如果一个或多个帐户(A、B、C、D)丢失但可用的帐户满足条件怎么办?
-
@Rajat 我猜它们的值是未知的(NULL),而 NULL 是关系代数中的吸收元素
标签: sql snowflake-cloud-data-platform case window-functions snowflake-schema