gpt4 book ai didi

mysql - 使用 SQL 进行分组并保留初始记录

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

我正在使用 GROUP BY 和 HAVING 来选择一些符合我们公司计划资格的消费者。我们将此基于消费者从与其关联的任意数量的帐户(一对多)中获得的余额。

下面是代码示例:

select   consumerid, 
sum(balanceonaccts) bal,
group_concat(accountid) accts
from accounts
join consumer
on consumer.consumerid = accounts.consumerid
group by consumerid
having bal > 300"

这为我提供了有关谁符合消费者级别资格的信息,但是,我能够识别组合以满足余额的帐户的唯一方法是使用 group_concat()。

我想知道是否有一种方法可以识别那些帐户组合满足余额标准的消费者,然后以某种方式将输出向下移动到帐户级别。

当我尝试:

group by accountid

它排除了那些账户本身无法满足余额要求但加起来就能超过阈值的消费者。

最佳答案

您已经拥有满足条件的 consumerid 值组,因此您可以使用现有查询作为派生表,只需再次加入 accounts 即可获取帐户:

select
a.consumerid,
a.accountid,
a.balanceonaccts,
ba.bal
from
accounts a
inner join (
select
ac.consumerid,
sum(ac.balanceonaccts) bal
from
accounts ac
inner join consumer co on
co.consumerid = ac.consumerid
group by
ac.consumerid
having
bal > 300
) ba on ba.consumerid = a.consumerid
order by
a.consumerid,
a.accountid

关于mysql - 使用 SQL 进行分组并保留初始记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773829/

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