gpt4 book ai didi

mysql - SQL 加入聚合

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

我需要编写一个查询,从下面的 3 个表创建一个简单的报告。 (此处为 SQLFiddle:http://www.sqlfiddle.com/#!9/bec6b9/2)

表:程序

id    |  org_id  |  unique_name
------------------------------
1 15 pg_1
2 25 pg_2

表:客户

id    |  program_id   |  first_name  |  last_name
-------------------------------------------------
1 1 Bob Smith
2 2 John Jones
3 2 Rob Walker

**表:交易**

id    |  customer_id    |  amount
---------------------------------
1 1 10.00
2 1 10.00
3 2 10.00
4 2 10.00
5 2 10.00
6 2 10.00
7 3 10.00
8 3 10.00
9 3 10.00
10 3 10.00

我需要生成一个相当简单的报告,说明每个程序 unique_name 有多少客户,以及每个程序唯一名称的总交易金额。

所以对于这些数据,它看起来像......

Program Name   |  # Customers    | Total Amount
-----------------------------------------------
pg_1 1 20.00
pg_2 2 80.00

您可以在此处查看 SQLFiddle:http://www.sqlfiddle.com/#!9/bec6b9/2

我当前的查询显示每个客户的交易总额,但我不确定如何将客户分组到一个计数中。

select program.unique_name as "Program Name",
customer.id,
sum(transaction.amount) as "Total Amount"
from program
join customer on customer.program_id = program.id
join transaction on transaction.customer_id = customer.id
group by customer.id

如何同时对程序名称进行分组?

最佳答案

试试下面的方法。

select p.unique_name, count(distinct c.id), sum(t.amount)
from customer c
left outer join transaction t on t.customer_id = c.id
inner join program p on c.program_id = p.id
group by p.unique_name;

关于mysql - SQL 加入聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53824909/

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