Sybase:获取组中的第一个数据

Sybase: Get the first data in a Group

我在获取数据集合中组中的第一行数据时遇到问题。目前我使用 Sybase 作为我的数据源。

我也使用了下面的查询,但没有用。

SELECT Id, Product, RANK() OVER (PARTITION BY Id ORDER BY Id) FROM ProductTbl

SELECT Id, Product FROM ProductTbl as X
WHERE Id = (
SELECT min(Id)
  FROM ProductTbl WHERE Id = X.Id
)

下面的例子是我正在处理的数据。

Id     Product  
1111    Apple  
1111    Orange  
1111    Banana  
2222    Guava  
2222    JackFruit  
2222    Grape  
3333    ProductA  
3333    ProductB  

我的预期输出应该是

Id      Product
1111    Apple
2222    Guava
3333    ProductA
select Id,Product from(
SELECT 
    Id,
    Product, 
    RANK() OVER (PARTITION BY Id ORDER BY Product) as first_row 
FROM ProductTbl group by Id,Product)x 
where first_row = 1

输出:

Id   Product
1111,Apple
2222,Grape
3333,ProductA

R在U之前,所以不可能是Guava

为什么不呢:

SELECT Id, MIN(Product) FROM ProductTbl GROUP BY Id

我是不是理解错了?