在 Snowflake 中从 Postgres 复制 FILTER 子句
Replicating FILTER clause from Postgres in Snowflake
Postgres 有一个非常有用的方法,叫做 FILTER
,它似乎不在 Snowflake 中。在 Postgres 中它是这样工作的:
SELECT
user_id,
MIN(orders.started_at) FILTER (WHERE orders.sequence_in_subscription = 1) as time_of_t1
FROM platform.orders
GROUP BY 1
您将如何在 Snowflake 中执行此操作?有这么简洁的方法吗?
这可能是一个非常基本的问题,但我对 Snowflake 世界还很陌生,之前只真正接触过 Postgres。提前感谢您的帮助!
是的,您可以使用 CASE
表达式代替 FILTER
子句:
SELECT
user_id,
MIN(CASE WHEN orders.sequence_in_subscription = 1 THEN orders.started_at END) AS time_of_t1
FROM platform.orders
GROUP BY
user_id;
Postgres 有一个非常有用的方法,叫做 FILTER
,它似乎不在 Snowflake 中。在 Postgres 中它是这样工作的:
SELECT
user_id,
MIN(orders.started_at) FILTER (WHERE orders.sequence_in_subscription = 1) as time_of_t1
FROM platform.orders
GROUP BY 1
您将如何在 Snowflake 中执行此操作?有这么简洁的方法吗?
这可能是一个非常基本的问题,但我对 Snowflake 世界还很陌生,之前只真正接触过 Postgres。提前感谢您的帮助!
是的,您可以使用 CASE
表达式代替 FILTER
子句:
SELECT
user_id,
MIN(CASE WHEN orders.sequence_in_subscription = 1 THEN orders.started_at END) AS time_of_t1
FROM platform.orders
GROUP BY
user_id;