不同的关键词只适用于一列

时间:2011-06-16 03:59:40

标签: postgresql

我使用postgresql作为我的数据库,我坚持用查询获得所需的结果,

我在桌子上的内容就像是跟随,

nid    date_start    date_end

1      20            25
1      20            25
2      23            26
2      23            26 

我想要的是

nid    date_start    date_end

1      20            25  
2      23            26

因为我使用了SELECT DISTINCT nid,date_start,date_end from table_1,但这会导致重复的条目,我怎样才能获得具有相应date_start和date_end的不同的nid? 任何人都可以帮我这个吗?

非常感谢!

4 个答案:

答案 0 :(得分:2)

根据您的示例数据和示例输出,您的查询应该可以正常工作。我假设您的样本输入/输出不准确。

如果要获取某个列的不同值以及其他相应列的值,则需要确定要显示的相应列中的WHICH值(否则您的问题和查询将没有意义)。为此,您需要使用聚合和分组。例如:

SELECT
   nid,
   MAX(date_start),
   MAX(date_end) 
FROM
   table_1
GROUP BY
   nid

答案 1 :(得分:1)

除非您选择更多列,否则该查询应该有效。 或者,您可能会使用不同的开始和/或结束日期获得相同的nid

答案 2 :(得分:1)

尝试区分:

从表格中选择(col1)col1,col2上的distinct;

答案 3 :(得分:0)

DISTINCT 无法导致重复的条目 - 这就是它所做的...删除了重复项。

您发布的数据不正确吗?究竟你的数据和输出是什么?