【发布时间】:2022-01-06 18:06:38
【问题描述】:
我正在使用 Google BigQuery 中的一个窗口函数来最大程度地为客户附加这样的价值:
SELECT customer_key, store_location,
FIRST_VALUE(store_key) OVER (
PARTITION BY customer_key
ORDER BY visits DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS fav_store
FROM VISIT_DB
ORDER BY customer_key ASC
它可以很好地为我提供更多客户访问的商店。但是,有些情况下,客户在 3 个不同的商店中的访问次数相同,并且此函数返回相同的 3 个值。
例如,当客户 111 在商店 A、B 和 C 中访问了 3 次时,因为它们的访问次数都相同,我希望退回其中的任何一个而不是全部三个。
我也尝试使用LAST_VALUE和MAX,但是当访问次数相同时,他们三个返回所有商店。
我怎样才能让它只返回一个?
【问题讨论】:
标签: sql google-bigquery window-functions