我使用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?
任何人都可以帮我这个吗?
非常感谢!
答案 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
无法导致重复的条目 - 这就是它所做的...删除了重复项。
您发布的数据不正确吗?究竟你的数据和输出是什么?