【发布时间】:2019-06-10 11:55:52
【问题描述】:
我需要按日期范围对登录用户进行报告,但在同一天不重复(如果某人在同一天登录两次,我们不会列出两次)。不幸的是,我们将登录信息保存为 json(是的,我不能将其更改为单独的表,我不知道是谁设计了这个数据库)。 查询查看所有登录用户:
select a.id, username, email, ah.modified as login_date
from accounts a join
account_history ah
on modified_acc_id = a.id
where ah.data::jsonb->>'message' = 'Logon';
修改为带时区的时间戳,作为登录日期。
我只找到了每天计数不同 id 的示例,但我不知道如何修改它以每天返回不同的结果
样本数据:
id | username | email | login_date
-----+-------------------------+---------------------------------+----------------------------
102 | example | example@example.com | 2018-12-06 09:30:10.573+00
102 | example | example@example.com | 2018-12-06 09:32:34.235+00
42 | rafal | rafal@example.com | 2018-12-06 09:45:24.884+00
576 | john | john@example.com | 2018-12-06 09:35:24.922+00
576 | john | john@example.com | 2018-12-07 09:58:04.253+00
想要的数据:
id | username | email | login_date
-----+-------------------------+---------------------------------+----------------------------
102 | example | example@example.com | 2018-12-06 09:30:10.573+00
42 | rafal | rafal@example.com | 2018-12-06 09:45:24.884+00
576 | john | john@example.com | 2018-12-06 09:35:24.922+00
576 | john | john@example.com | 2018-12-07 09:58:04.253+00
如你所见,没有第二行
【问题讨论】:
-
@GordonLinoff 已编辑
标签: json postgresql distinct-values