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

时间:2015-09-02 12:01:51

标签: sybase sybase-ase

我在数据集合中获取组中的第一行数据时遇到问题。目前我正在使用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

2 个答案:

答案 0 :(得分:1)

为什么不:

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

我误解了吗?

答案 1 :(得分:0)

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,所以它不能是番石榴。