选择每个ID的第一行

时间:2014-09-19 14:54:46

标签: sql sybase

我有一个查询SELECT tbl.id, tbl.data FROM tbl WHERE ...),它会返回如下数据:

1 | c
1 | b
1 | a
2 | f
2 | e
2 | g
3 | z
3 | i

我希望查询这些结果以返回每个id的第一个条目:

1 | c
2 | f
3 | z

我会写这个查询吗?

编辑:抱歉,我已经提炼了这个问题 - 现在应该很清楚了。

3 个答案:

答案 0 :(得分:0)

SELECT  tbla.id ,MIN(tbl.data) FROM tbla GROUP BY tbla.id

答案 1 :(得分:0)

SELECT DISTINCT tbl.id, tbl.data FROM tbl WHERE x=y

答案 2 :(得分:0)

我们可以按id对数据进行分区,并从该组中获取每个id的一个数据值。

SELECT id, data 
FROM
( SELECT id, 
         data,
         ROW_NUMBER() OVER (PARTITION BY id order by data) as seq
  FROM tableA
) T
where T.seq =1