gpt4 book ai didi

MySQL:Max Date(),汇总单独列的最后日期值

转载 作者:行者123 更新时间:2023-11-29 07:30:57 24 4
gpt4 key购买 nike

我试图通过 Company_Name 使用此数据集总结每个 Wing_Name 的每个员工(总和)和 QA_Score(平均​​值)的 Date_Time 的最后值:

+--------------+-----------+------------------+-----------+----------+
| Company_Name | Wing_Name | Date_Time | Employees | QA_Score |
+--------------+-----------+------------------+-----------+----------+
| Company A | Wing A | 06/08/2018 13:00 | 82 | 3.5 |
| Company A | Wing A | 06/08/2018 13:01 | 83 | 3.6 |
| Company A | Wing A | 06/08/2018 13:02 | 84 | 3.7 |
| Company A | Wing B | 06/08/2018 13:00 | 50 | 4.1 |
| Company A | Wing B | 06/08/2018 13:01 | 51 | 4.2 |
| Company A | Wing B | 06/08/2018 13:02 | 52 | 4.3 |
| Company B | Wing A | 06/08/2018 14:00 | 82 | 3.6 |
| Company B | Wing A | 06/08/2018 14:01 | 85 | 3.7 |
| Company B | Wing A | 06/08/2018 14:02 | 88 | 3.8 |
+--------------+-----------+------------------+-----------+----------+

期望的输出是:

+--------------+-----------+----------+
| Company_Name | Employees | QA_Score |
+--------------+-----------+----------+
| Company A | 136 | 4 |
| Company B | 88 | 3.8 |
+--------------+-----------+----------+

我已经成功地使用以下代码通过 Wing_Name 显示 Date_Time 的最后结果,但我无法为 Company_Name 找出结果,同时将 Wing_Name 排除在输出之外。

SELECT * FROM table
WHERE (Wing_Name, Date_Time) IN
(SELECT Wing_Name, MAX(Date_Time) Date_Time FROM table GROUP BY Wing_Name)
AND `Company_Name` = "Company A";

所需的输出现在应该是 Company_Name 的员工通过每个 Wing_name 的结果的总和,以及相应 Wing_Name 的 QA_Score 平均值,但汇总在 Company_Name 下

所需的输出遵循以下逻辑:

  • 公司 A 和 Wing A 员工的上次 Date_Time 值为 84。
  • 公司 A 和翼楼 B 的员工的上次日期时间值为 52。
  • 截至上一个 Date_Time,公司 A 有 84+52 名员工 (136)检索。
  • 公司 A 和 Wing A 的 QA_Score 的最后 Date_Time 值为 3.7。
  • 公司 A 和 Wing B 的 QA_Score 的最后一个 Date_time 值为 4.3。
  • 公司 A 的平均 QA_Score 为 4.0
  • B公司员 worker 数为88人
  • B公司平均QA_Score 3.8

这一定是我缺少的简单东西?提前谢谢你。

最佳答案

您需要在子查询中同时按 company_namewing_name 进行分组,然后仅按 company_name 对主查询进行分组以合并行被选中。

SELECT t1.company_name, SUM(t1.employees) AS employees, AVG(t1.qa_score) AS qa_score
FROM table AS t1
JOIN (SELECT company_name, wing_name, MAX(date_time) AS maxtime
FROM table
GROUP BY company_name, wing_name) AS t2
ON t1.company_name = t2.company_name AND t1.wing_name = t2.wing_name AND t1.date_time = t2.maxtime
GROUP BY t1.company_name

DEMO

关于MySQL:Max Date(),汇总单独列的最后日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51312521/

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