sql - 如何逐列选择用户的最大日期?

标签 sql postgresql

我想获取userId和group by userId的最大日期

我现在不知道它是怎么做的 :c 我的 table :

Id: 1    userId:1        activitydate:2019-02-15 08:03:11
Id: 2    userId:1        activitydate:0001-01-01 00:00:00
Id: 3    userId:2        activitydate:2019-02-15 07:38:30
Id: 4    userId:2        activitydate:2019-02-15 06:30:30
Id: 5    userId:3        activitydate:2019-03-01 09:17:04



select userid,maxvalue(activitydate)
from wearabledata
group by userid

实际结果:

我的 table :

Id: 1    userId:1        activitydate:2019-02-15 08:03:11
Id: 3    userId:2        activitydate:2019-02-15 07:38:30
Id: 5    userId:3        activitydate:2019-03-01 09:17:04

最佳答案

DISTINCT ON 关键字正是您需要的解决方案:

SELECT DISTINCT ON (userid)
       userid,activitydate
FROM   wearabledata
ORDER  BY userid, activitydate DESC;

关于sql - 如何逐列选择用户的最大日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490560/

相关文章:

sql - 计算个人在当前团队之前与其他团队成员的先前联系

使用 AND 和 OR 的 mysql 查询 where 子句

sql - postgresql 连接 2 个表和子查询,最后一个值 < 日期

node.js - 如何获取nodejs回调结果

sql - 查询SQL数据库,如何获取用户位置附近的最近点?

mysql - SQL查询中的条件逻辑

mysql - 如何比较where子句中的时间戳

django - PostgreSQL 9.3 的 REFRESH MATERIALIZED VIEW 命令仅持续 Django 连接的长度

sql - 创建更新 View sql错误的规则

sql - 确定分层路径的子计数