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你会怎么做?有这么简洁的方法吗?
这可能是一个很基本的问题,但我对雪花世界还很陌生,以前只做过研究生。感谢您提前提供的帮助!
是的,您可以使用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;