SQL新手问题在这里。
我有一张桌子: 表 - [产品] - 下面有列
ProductID, ProductDesc
DRILL01 Drill Bits
DRILL02 Drill Other
DRILL01 Drill Set
DRILL01 Drill Bits Set
....
希望返回第一场比赛,例如
DRILL01 Drill Bits
DRILL02 Drill Other
我已经尝试过分组,但没有看,并认为我可能需要一个 TOP 1 选项,但似乎无法解决它。 做了大量的搜索,但我一定错过了什么。
任何帮助他都会很棒。
您可以使用ROW_NUMBER
:
SELECT *
FROM (SELECT *,
ROW_NUMBER() OVER(PARTITION BY ProductId ORDER BY timestamp_col) AS r
FROM tab)
WHERE r=1;
为了获得稳定的结果,您必须决定如何获得每个ProductId
组的"第一个"值。例如,通过按某种时间戳/标识列排序。