gpt4 book ai didi

mysql - 如何连接三个表?计数和平均 SQL

转载 作者:行者123 更新时间:2023-11-30 21:36:42 25 4
gpt4 key购买 nike

我在下面有三个表格,其中包含以下信息

project.analytics 
| proj_id | list_date | state
| 1 | 03/05/10 | CA
| 2 | 04/05/10 | WA
| 3 | 03/05/10 | WA
| 4 | 04/05/10 | CA
| 5 | 03/05/10 | WA
| 6 | 04/05/10 | CA

employees.analytics
| employee_id | proj_id | worked_date
| 20 | 1 | 3/12/10
| 30 | 1 | 3/11/10
| 40 | 2 | 4/15/10
| 50 | 3 | 3/16/10
| 60 | 3 | 3/17/10
| 70 | 4 | 4/18/10

email.forward
| email_id | event_id | employee_id
| 1 | 1 | 20
| 2 | 2 | 80
| 3 | 3 | 40
| 4 | 4 | 50
| 5 | 5 | 50
| 6 | 6 | 60

我如何确定哪些电子邮件 (email_id) 促使员工按月和州处理项目(数量)?

Desired output:

Email_id | Month | state |# of employee
1 | March | CA | 1
1 | April | WA | 2
2 | July | WA | 2
2 | August | CA | 1

我很困惑,因为我不确定如何将三张 table 放在一起。本质上我希望能够回答

这个 email_id 在这个月和州有这么多员工在这个项目上工作。

最佳答案

像这样的东西应该可以工作:

SELECT c.email_id, month(b.worked_date), a.state, count(distinct b.employee_id)
FROM project.analytics a
JOIN employees.analytics b
ON a.project_id = b.project_id
JOIN email.forward c
on c.employee_id = b.employee_id
GROUP BY c.email_id, month(b.worked_date)

我不确定您使用的是什么 DBMS,因此 MONTH() 可能存在也可能不存在,但您应该能够找到类似的函数。

关于mysql - 如何连接三个表?计数和平均 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584432/

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