gpt4 book ai didi

sql - 如何选择多列同时保持其中一列不同

转载 作者:行者123 更新时间:2023-11-29 14:06:16 30 4
gpt4 key购买 nike

我想从表中选择两列(A 和 B),并且只保留其中一列 (A) 的不同值。但是 A 的单个值可以映射到 B 的多个值。因此以下查询将不起作用

select distinct A, B from table1

我在想这样的事情:

select A, agg(B) from table1 group by A

我希望 agg 函数在对 A 进行分组时从 B 中随机选择一个值。在 Postgres 中如何做到这一点?

最佳答案

如果您想要一个任意值(“任何旧值”),则min()max() 是任意值:

select a, min(b) as b
from table1
group by a;

如果您想要一个不确定值(“匹配的任何行中的值”),则:

select distinct on (a) a, b
from table1
order by a;

如果您想要一个随机值(“从均匀分布中选择的随机匹配行的值”),则:

select distinct on (a) a, b
from table1
order by a, random();

换句话说,“随机”的定义不同于“任意”和“不确定”。但是,distinct on 可能是您想要的。

关于sql - 如何选择多列同时保持其中一列不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724350/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com