从雪花中的Postgres复制FILTER子句

时间:2019-11-19 16:56:15

标签: sql snowflake-data-warehouse conditional-aggregation

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。感谢您的任何事先帮助!

1 个答案:

答案 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;