gpt4 book ai didi

mysql - 如何获取具有求和列最大值的行

转载 作者:搜寻专家 更新时间:2023-10-30 23:40:09 25 4
gpt4 key购买 nike

这是我的数据库的样子: https://dev.mysql.com/doc/employee/en/sakila-structure.html

我的目标是找到员工工作时间最长的部门。

这是我的:

SELECT dept_no, MAX(SUM(DATEDIFF(
case when to_date = '9999-01-01' then current_date else to_date end,
from_date))) as amount
FROM dept_emp d, employees e
WHERE d.emp_no = e.emp_no
GROUP BY d.dept_no
ORDER BY amount DESC

我还收到“组功能的无效使用”。我已经讨论过几次了,但无法正确理解。我觉得执行 MAX(SUM(DATEDIFF(,但这是我能想到的唯一方法。任何帮助都会非常感激!

感谢阅读!

-------------------------------------------- ---------------------------------------------- --------------------------------------更新:

我开始觉得我现在可能需要 max(avg(sum(datediff(..

最佳答案

你不能对彼此使用两个聚合函数,即使你可以它也不会做任何事情。

您可以从查询中删除最大值,并将结果限制为 1 以获得最大的结果,如下所示:

SELECT d.dept_no,
SUM(DATEDIFF(case when to_date = '9999-01-01'
then current_date else to_date end,
from_date))) as amount
FROM dept_emp d, employees e
WHERE d.emp_no = e.emp_no
GROUP BY d.dept_no
ORDER BY amount DESC
LIMIT 1;

如果最大值是您正在寻找的,只需替换它们即可。

关于mysql - 如何获取具有求和列最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970012/

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