无法使用postgres查询获取唯一值

时间:2011-01-05 15:33:42

标签: sql postgresql

我有一个postgre sql查询如下

SELECT cNo,max(numLogs),name,surname FROM details GROUP BY cNo,name,surname

如果我运行此操作,我的结果不会对cNo进行分组,是否有任何方法可以让cNo独特/分组。

我得到的结果类似于以下

cNo         numLogs     name        surname
23          43          asfas       safdasd
23          45          dsfds       fdsfsdfsd
23          43          dsfsd       dsfsdfsd

我想要像

这样的东西
cNo         numLogs     name        surname
23          45          asfas       safdasd

1 个答案:

答案 0 :(得分:4)

如果想要唯一的cNo并且您不关心要提取的姓名,则可以在这些字段上使用其他聚合函数。

SELECT cNo
    ,max(numLogs)
    ,max(name)
    ,max(surname)
-- min would also work.
FROM details 
GROUP BY cNo

否则,您所提取的内容是cNonamesurname的唯一组合。

如果您需要提取特定的名称或姓氏(不会被minmax或任何PostGreSQL的aggregate功能提取,然后你会想要过滤你的结果,而不是从表中选择所有内容。