【问题标题】:Replicating FILTER clause from Postgres in Snowflake从雪花中的 Postgres 复制 FILTER 子句
【发布时间】:2020-03-15 06:40:25
【问题描述】:

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。提前感谢您的帮助!

【问题讨论】:

标签: sql snowflake-cloud-data-platform conditional-aggregation


【解决方案1】:

是的,您可以使用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;

【讨论】:

  • 好的,非常感谢!我认为可能有更简洁的方法,但这会奏效。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多