Sql 获取列中每个值的最大结果

Sql 获取列中每个值的最大结果,sql,informix,Sql,Informix,我使用的是Informix DB和如下表: Col1 Col2 Col3 a a a b a c c b a d c d SQL语句是否可以只显示前两行中的一行,只指定唯一的结果(值可以是任何值)。我只想从col2得到一个具有相同值的结果,我不介意检索哪一行 我希望我说的有道理。假设您有一个打破平局的列(一个列主键),您可以使用这样的内容 select t.* from ( select col2, min(pk_id) pk_id

我使用的是Informix DB和如下表:

Col1 Col2 Col3
a    a    a
b    a    c
c    b    a
d    c    d
SQL语句是否可以只显示前两行中的一行,只指定唯一的结果(值可以是任何值)。我只想从col2得到一个具有相同值的结果,我不介意检索哪一行


我希望我说的有道理。

假设您有一个打破平局的列(一个列主键),您可以使用这样的内容

select t.*
from (
    select col2, min(pk_id) pk_id
    from tbl
    group by col2
) x, tbl t
where t.col2=x.col2 and t.pk_id=x.pk_id

假设您有一个打破平局的列(一个单列主键),您可以使用如下内容

select t.*
from (
    select col2, min(pk_id) pk_id
    from tbl
    group by col2
) x, tbl t
where t.col2=x.col2 and t.pk_id=x.pk_id

非常感谢您的快速回复!只是一个简短的问题。。我可以在我的代码中轻松做到这一点,获得结果集,并且从性能的角度来看,SQL对DB来说“重”吗?@StefanE一点也不重,这就是DBs的用途,可以非常快速地执行基于集的操作。非常棒,感谢您的快速回复!只是一个简短的问题。。我可以在我的代码中轻松实现这一点,获得结果集,并且从性能的角度来看,SQL对DB来说“重”吗?@StefanE一点也不重,这就是DBs的用途,它可以非常快速地执行基于集的操作。