我正在尝试查询上次阅读的报告及其阅读日期。
UserReport
c(brv_trx1$decvar[-1],NA) instead of the lag(brv_trx1$decvar)
因此要获得特定用户,我可以执行以下查询:
UserId, ReportId, DateRead
1, 2, 2018-01-01
1, 1, 2015-02-12
2, 3, 2016-03-11
3, 2, 2017-04-10
1, 3, 2016-01-01
2, 1, 2018-02-02
但是我很难弄清楚如何为每个用户执行此操作。让我失望的是TOP 1
预期结果:
SELECT TOP 1 *
FROM UserReport
WHERE UserId = 1
ORDER BY DateRead DESC
答案 0 :(得分:0)
您可以使用:
SELECT TOP 1 WITH TIES *
FROM UserReport
ORDER BY ROW_NUMBER() OVER(PARTITION BY UserId ORDER BY DateRead DESC)