Hen*_*nry 4 sql postgresql greatest-n-per-group
我需要从表中提取每个用户的最后记录。表架构如下所示。
mytable
product | user_id |
-------------------
A | 15 |
B | 15 |
A | 16 |
C | 16 |
-------------------
Run Code Online (Sandbox Code Playgroud)
我想要得到的输出是
product | user_id |
-------------------
B | 15 |
C | 16 |
Run Code Online (Sandbox Code Playgroud)
基本上是每个用户的最后记录。
提前致谢!
您可以使用名为 的窗口函数ROW_NUMBER。下面为您提供了一个解决方案。我还在 db-fiddle 中为您做了一个演示查询。请检查DB-Fiddle 中的链接演示代码
WITH CTE AS
(SELECT product, user_id,
ROW_NUMBER() OVER(PARTITION BY user_id order by product desc)
as RN
FROM Mytable)
SELECT product, user_id FROM CTE WHERE RN=1 ;
Run Code Online (Sandbox Code Playgroud)