使用postgresql v8.2
例如我有这样一张表:
id | va
-----+-----
123 | 234
123 | 234
123 | 456
234 | 123
234 | 345
456 | 678
(6 rows)
我想要的是从表中查询以随机获得具有相同ID
它可能会像:
id | va
-----+-----
123 | 234
234 | 123
456 | 678
(3 rows)
或者喜欢:
id | va
-----+-----
123 | 456
234 | 345
456 | 678
(3 rows)
哪个值并不重要,但必须有一个。 谢谢你提出任何方法。
答案 0 :(得分:1)
select id, max(va) from table group by id;
正如您所说,va
的价值无关紧要。您可以选择任何聚合。
您也可以使用distinct on
select distinct on (id) id, va from table order by id, random();
答案 1 :(得分:0)
您在寻找SELECT id, max(va) FROM tablename GROUP BY id ;
吗?它只会为表中的每个Id选择一行。
PostgreSQL GROUP BY子句与之合作使用 SELECT语句将表中的那些行组合在一起 相同的数据。
您的情况是否可以进行以下查询:
{{1}}