sql - 如何为用户返回每月最大日期
问题描述
我有下表:
我想为每个用户返回每个月的最大阈值日期,所以我的最终结果应该是这样的:
我想使用分析函数 ROW_NUMBER 并返回最大行数,但如何为每个用户每月执行此操作?在 BigQuery 中是否有更简单的方法?
解决方案
您可以row_number
按用户和月份分区,然后为每个分区取第一个:
SELECT user_id, threshold_date, net_deposists_usd
FROM (SELECT user_id, threshold_date, net_deposists_usd,
ROW_NUMBER () OVER (PARTITION BY user_id, EXTRACT (MONTH FROM threshold_date)
ORDER BY net_deposists_usd DESC) AS rk
FROM mytable)
WHERE rk = 1
推荐阅读
- java - 反向打印给定数组
- php - PHP:如果从 PHP 文件重定向,则显示消息
- django - 无法检查是否选择了单选按钮:Django
- amazon-web-services - 如何在 CloudFormation 模板中将字符串转换为大写
- c# - 如果您从异步回调中抛出/生成异常,应该/可以/应该在哪里捕获它?
- python - 如何实现内核大小为 3 的高斯滤波器
- python - Flask C++ Socket Code 400,消息错误的请求语法
- javascript - Vue组件中的无限更新循环
- android - AutoCompleteTextView:在 XML 中提供值?
- sql - SQL 中的模糊查找以匹配名称