【发布时间】:2020-12-10 21:07:21
【问题描述】:
我有两个表:用户和会话。
用户有列:用户名,id
会话有列:userid、lastactivityat、deleteat
我希望为每个用户提取具有最近“最后活动日期”会话的所有用户,然后过滤“最后活动日期”超过 x 天的用户。 “最后活动日期”是纪元格式和毫秒,这就是我必须进行一些转换计算的原因。
这是我当前的请求(x = 30)
select u.username, min(extract(epoch from now() - to_timestamp(lastactivityat/1000))/86400::int) as most_recent_inactivity_days
from users as u
join sessions as s on s.userid=u.id
where extract(epoch from now() - to_timestamp(lastactivityat/1000))/86400::int >= 30
group by username
order by username
现在我希望添加到我的请求的结果中:每个用户的 deleteat 列,但我的请求失败了:
select u.username, min(extract(epoch from now() - to_timestamp(lastactivityat/1000))/86400::int) as most_recent_inactivity_days, s.deleteat
from users as u
join sessions as s on s.userid=u.id
where extract(epoch from now() - to_timestamp(lastactivityat/1000))/86400::int >= 30
group by username
order by username
你能建议吗?
【问题讨论】:
标签: postgresql join aggregate-functions min