在PostgreSQL中,我有两个表:
- 用户(用户ID(PK整数),用户名(字符可变))
- 访问(访问ID(PK整数),* 用户ID *(FK用户,整数),访问日期(日期),访问原因(整数),问候语(字符可变))
1个用户可以访问我n次。每个访问条目都有一个日期。
现在我想查询一个用户列表,这些用户最早(VisitDate
)访问VisitReason=123
的次数为Greeting
。(每个用户占1行。)(我对没有相关访问的用户不感兴趣。)
在PostgreSQL中做这件事最简单的方法是什么?
表现不重要,这是一次性任务。
1条答案
按热度按时间0x6upsns1#
我能想到的最简洁的方法是使用
FETCH FIRST ROWS WITH TIES
子句,对于每个UserID的第一次约会排名为1的ROW_NUMBER
。如果您还需要捕获用户名,则需要执行额外的连接操作(相对于users表而言):