sql - 在用户日表中查找最近的购买日期
问题描述
我正在尝试组合一个查询,该查询将获取每个用户最后一次购买的日期、购买金额和交易数量。我从一个用户日表中提取,该表包含用户每次在应用程序中执行任何操作(购买与否)时的一行。基本上我想要得到的是交易数量字段大于零的最近日期。当我要查找的只是最后一次购买时,以下查询返回特定用户进行的所有购买天数,因此我想要获取的是所附屏幕截图中显示的第一行。
select tuid, max(event_day),
purchases_day_rev as last_dop_rev,
purchases_day_num as last_dop_quantity,
purchases_day_rev/nullif(purchases_day_num,0) as last_dop_spend_pp
from
(select tuid, event_day,purchases_day_rev,purchases_day_num
from
app.user_day
where purchases_day_num > 0
and tuid='122d665e-1d71-4319-bb0d-05c7f37a28b0'
group by 1,2,3,4) a
group by 1,3,4,5
解决方案
我不会评论您的查询逻辑......如果您想要的只是结果集的第一行,您可以尝试:
<your query here> ORDER BY 2 DESC LIMIT 1 ;
在ORDER BY 2 DESC
max(event_day) 上对结果集进行排序并LIMIT 1
仅提取第一行。
推荐阅读
- asp.net-mvc-5 - 在提交表单时查看未将数据传递给控制器
- coq - 什么是 Coq 中一个简单证明的好例子,其中结论有一个存在量词?
- dart - 第一次异步调用值为NULL,在构建MainPage时导致断言错误(Widget脏)
- python - Python 在 Raspberry Pi 3 上尝试发送 ARP 请求时引发 AttributeError
- javascript - JS如何返回所有同名的人
- haskell - :sprint 和 `seq` 一起 - 缺少评估?
- haskell - 哈斯克尔。这个函数如何捕获负数作为参数?
- firebase - 每次打开页面时都会加载 AngularFire 列表
- java - 使用套接字进行 Java 登录
- python - open() 中的整数文件描述符“0”