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。感谢您的任何事先帮助!
答案 0 :(得分:2)
是的,您可以使用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;