gpt4 book ai didi

mysql - 从 PostgreSQL 中的 group by 子句中获取特定行

转载 作者:行者123 更新时间:2023-11-29 14:20:52 25 4
gpt4 key购买 nike

如果我有如下表格,

tid   pid   bid  fl fq fo
---------------------------
7114 3823 2341 3 1 1
7114 3823 2340 0 0 0
7114 3823 2350 0 0 0
7114 3850 4515 0 0 0
7114 3474 2350 0 0 0
7114 3474 2340 1 2 1

我需要从这个表中获取列 pidbidflfq 的行,其中它的 fo=1 通过分组 pid

预期的输出将是:

pid   bid   fl fq fo
----------------------
3823 2341 3 1 1
3823 2340 3 1 1
3823 2350 3 1 1

3474 2350 1 2 1
3474 2340 1 2 1

注意:例如(考虑表格)第 1 行和第 2 行具有相同的 pid,即。3823 并且在这两行中,一行具有 fo=1(即.第一行)所以我需要得到第一行的pidfl,fqbid第二行,所以输出应该是

pid   bid   fl fq fo
----------------------
3823 2341 3 1 1
3823 2340 3 1 1
3823 2350 3 1 1

示例数据:

create table com (tid int,pid int,bid int,fl int,fq int,fo int);

insert into com values (7114 , 3823, 2341, 3 , 1 , 1),
(7114 , 3823 , 2340 , 0 ,0 , 0),(7114 , 3823 , 2350 , 0 , 0 , 0),
(7114 ,3850, 4515, 0 , 0 , 0),(7114 , 3474 , 2350, 0 , 0, 0),
(7114 ,3474, 2340 , 1 , 2 , 1);

最佳答案

试试这个:

select      distinct c1.pid
, c2.fl
, c2.fq
, c2.bid
from tmp.com c1
inner join tmp.com c2
on c1.pid = c2.pid
and c2.fo = 1

output:
3474 1 2 2340
3823 3 1 2341

地区是防止重复的必要条件,如果可以的话,您还可以加入更多的领域。

关于mysql - 从 PostgreSQL 中的 group by 子句中获取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704820/

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