gpt4 book ai didi

sql - 表有重复数据,无法让两个聚合函数在 SQL 查询中工作

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

问题是“地址”表有多个条目,用户已在其中更新了他们的地址。我只需要最新的。我尝试在“地址”表中使用 MAX(uPDATED_AT) 但出现错误。好吧,我首先编写了下面的代码并意识到许多行是重复的或接近重复的。我只需要获取他们对地址的 last 更改,但在尝试将另一个聚合添加到 HAVING 子句时出现错误。有人可以帮忙吗?我是 SQL 的新手,但很想知道这个问题并在以后更正它。

顺便说一句,我正在使用 PostgreSQL

Select
last_name,
first_name,
donator,
customer_id,
phone, 
address,
city,
state,
zipcode,
events.buyer_id

from events 

join addresses on events.buyer_id = addresses.buyer_id
inner join customer_extras on addresses.buyer_id = customer_extras.buyer_id
inner join Customer_roles on events.buyer_id = Customer_roles.buyer_id
inner join People on Customer_roles.buyer_id = People.id

group by 
customer_id,
member_status,
events.event_type,
first_name,
last_name,
address,
city,
state,
phone,
donator,
zipcode,
events.buyer_id

HAVING MIN(events.created_at) between '2015-06-01'
and '2015-08-01' and event_type ILIKE 'MEMBER_TABLET%' and member_status IN
('moved','never answered', 'refused', 'complete')

最佳答案

您需要使用窗口函数,您的查询将如下所示

select t.*, dense_rank() over (partition by <column_with_duplicate_values> order by <date> desc) dr from ...

以上查询以降序排列。您需要包含在另一个查询中

select * from (<above_query>) q where dr=1;

关于sql - 表有重复数据,无法让两个聚合函数在 SQL 查询中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033057/

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