每个user_id包含最新数据的行



目前我有这个视图,但我想更改它,使最近的员工"Stritt"获得他最后一次的所有销售原因。

cal_date     id  sales   emp
2021-01-04  24  0.85    Krebs 
2021-01-29  24  11.4    Krebs   
2021-01-31  24  -5.7    Timo
2021-02-01  24  0.85    Timo    
2021-02-26  24  1.00    Stritt
2021-01-30  33  5.33    Alex
2021-03-10  33  3.45    Alex    
2021-04-20  33  1.20    Dom

它应该是这样的:

cal_date     id  sales   emp
2021-01-04  24  0.85    Stritt
2021-01-29  24  11.4    Stritt
2021-01-31  24  -5.7    Stritt
2021-02-01  24  0.85    Stritt
2021-02-26  24  1.00    Stritt
2021-01-30  33  5.33    Dom
2021-03-10  33  3.45    Dom 
2021-04-20  33  1.20    Dom

您可以使用Window函数来查找分区(id(中的最后一个值

SELECT
cal_date,
id,
sales,
FIRST_VALUE(emp)
OVER (
PARTITION BY id
ORDER BY cal_date DESC,
emp      DESC
)
AS emp
FROM
yourTable

如果多个emp具有最近日期的记录,则会选择最高的emp值。

最新更新