【发布时间】:2022-01-23 17:05:31
【问题描述】:
我有两张桌子, 点击次数:
user date
a 01/10/2021
a 02/10/2021
a 03/10/2021
b 27/09/2021
c 08/10/2021
c 13/10/2021
和段:
user date segment
a 26/09/2021 1
a 27/09/2021 1
a 03/10/2021 2
c 01/10/2021 5
c 10/10/2021 6
我想将细分加入点击,以识别每个用户在给定点击日期的最新细分。所以正确的输出应该是这样的:
user date segment
a 01/10/2021 1
a 02/10/2021 1
a 03/10/2021 2
b 27/09/2021
c 08/10/2021 5
c 13/10/2021 6
我尝试了以下但得到错误'由于内部错误,不支持这种类型的相关子查询模式'
select *,
(select top 1 segment
from b
where
b.date <= a.date
ORDER BY ROW_NUMBER() OVER(PARTITION BY b.id ORDER BY b.date DESC)) as segment_lookup
from a;
非常感谢您找到最佳方法的任何帮助。提前致谢
【问题讨论】:
-
什么是数据库?使用
TOP看起来像 Sybase 或 SQL Server。
标签: sql join partition row-number