【发布时间】:2015-02-23 21:02:40
【问题描述】:
我无法正确获取此查询。我正在使用 Postgres 并尝试查询用户查看的最后 15 个客户端。
表client
专栏id, name...
表impressions
列imressionable_id, user_id, created_at ...
impressable_id 等于 client_id 并且可以在此字段上连接表。
我需要获取用户查看的最后 15 个 DISTINCT 客户端名称的列表,并按 created_at 日期排序 DESC。目前的问题是对印象表的查询会产生许多重复的条目,但具有唯一的 created_at 时间戳,因为每次查看客户端时它都会创建一个新的印象记录。
所以,一个查询
select impressions.impressionable_id, created_at from impressions where user_id = 1 order by created_at DESC
将产生:
impressionable_id created_at
1 2014-11-14 21:44:47.705167
1 2014-11-14 21:32:15.411488
3 2014-11-14 18:43:26.020719
1 2014-11-14 18:42:15.974442
5 2014-11-14 18:41:10.609617
3 2014-10-29 20:53:01.383896
我需要一个可以给我的查询:
1 John Doe 2014-11-14 21:44:47.705167
3 Jay Smith 2014-11-14 18:43:26.020719
5 Tim Jones 2014-11-14 18:41:10.609617
等等。非常感谢任何帮助!
【问题讨论】:
-
select max(created_at) .... group by impressionable_id?
标签: sql postgresql