SQL-多个描述-返回第一个值

时间:2018-09-08 16:22:41

标签: sql

SQL新手问题在这里。

我有一张桌子: 表格-[产品]-下方带有列

ProductID, ProductDesc
DRILL01    Drill Bits
DRILL02    Drill Other
DRILL01    Drill Set
DRILL01    Drill Bits Set
....

希望返回第一个匹配项,例如

DRILL01    Drill Bits
DRILL02    Drill Other

我已经尝试了一个没有外观的分组方式,并且认为我可能需要一个TOP 1选项,但是似乎无法绕开它。做了大量的搜索,但是我一定错过了一些东西。

任何帮助都会很大。

1 个答案:

答案 0 :(得分:2)

您可以使用ROW_NUMBER

SELECT *
FROM (SELECT *,
         ROW_NUMBER() OVER(PARTITION BY ProductId ORDER BY timestamp_col) AS r
      FROM tab)
WHERE r=1;

为了获得稳定的结果,您必须决定如何获取每个ProductId组的“第一”值。例如,通过按某种时间戳记/标识列进行排序。