mysql - 为每个用户选择最后一个条目

标签 mysql sql greatest-n-per-group

我有一个包含字段的 TABLE user_orders -->

  • order_id int(10),
  • user_id int(10),
  • order_payment_id int(10)
  • order_created int(10)

我想找到每个 user_id 使用的最后一个 order_payment_id。我试试

SELECT order_payment_id, user_id , MAX(order_id) as lastone
FROM user_orders 
GROUP BY user_id;

但是结果是错误的

最佳答案

您可以使用自连接来过滤掉相关数据

SELECT o1.*
FROM user_orders o1
JOIN
(
   SELECT user_id, MAX(order_created) as lastone 
   FROM user_orders
   GROUP BY user_id
) o2 on o1.user_id = o2.user_id 
    and o1.order_created = o2.lastone
GROUP BY o1.user_id

关于mysql - 为每个用户选择最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28233904/

相关文章:

php - mysql运行按列分组的付款总额,共享代码

php - 子查询返回多于 1 行 - 如何获取一行的最后更新日期?

sql - 将 Select(多个结果)的结果存储在一个变量中(稍后在 in 语句中使用)

mySQL:这是递归(或相互依赖)的一种形式吗?

mysql - 将原始每组最大 n 个 MySQL 查询切换到 Laravel 查询生成器

python - 属性错误 : 'tuple' object has no attribute 'drivername' using Flask SqlAlchemy

mysql - SQL语句运行缓慢

两个日期时间之间的 php MySQL 查询,但如果在范围内完成,则包括范围外的分钟数

MySQL - 从每行的关联表中获取显示 COUNT() 的列

mysql - 生成此报告的最有效方法是什么?