小编Raf*_*fał的帖子

Postgres,从日期范围选择每天获取唯一记录

我需要按日期范围为已登录的用户制作一份报告,但在同一天没有重复(如果有人在同一天登录两次,我们不会将其列出两次)。不幸的是,我们将登录信息保留为json(是的,我无法将其更改为单独的表,我不知道这个db是谁设计的)。查询以查看所有登录的用户:

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';
Run Code Online (Sandbox Code Playgroud)

修改为带时区的时间戳,用作登录日期。

我只找到了每天计数不同 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
Run Code Online (Sandbox Code Playgroud)

想要的数据:

 id  |        username  | …
Run Code Online (Sandbox Code Playgroud)

postgresql json distinct-values

2
推荐指数
1
解决办法
2174
查看次数

标签 统计

distinct-values ×1

json ×1

postgresql ×1