gpt4 book ai didi

mysql - 选择分组中的最小值

转载 作者:行者123 更新时间:2023-11-29 10:08:04 26 4
gpt4 key购买 nike

我正在尝试查找创建票证时员工所拥有的最接近的职位名称。我的员工表保存了对员工的所有更改,即经理变更、位置等。这是我编写的查询;

SELECT DATEDIFF(t.created, e.valid_from) "diff",
t.ticket_id,
t.assignee_id,
t.created AS 'ticket_created',
u.user_id,
u.email,
e.valid_from,
...
...
...
FROM tickets t
JOIN users u ON t.assignee_id = u.user_id
JOIN employees e ON u.email = e.email

这将为每个员工变更提供一行。如何缩小范围以仅从 DATEDIFF 中选择最小的正整数?这将使我能够获得与工单创建最接近的职位名称。

现在的示例输出;

ticket_id diff ticket_created job_title email
111 2 20-04-18 XYZ a@a.com
111 5 25-04-18 YYZ a@a.com
111 -30 04-01-18 ABC a@a.com

我想要的输出是只保留第一行,因为它是差异中最小的正整数。

最佳答案

尝试这样 - 只获取 DATEDIFF 将返回正结果(大于零)的记录,然后按实际 DATEDIFF 排序并获取其中第一个(最小的)记录:

SELECT 
t.ticket_id,
t.assignee_id,
t.created AS 'ticket_created',
u.user_id,
u.email,
(SELECT e.job_title FROM employees e
WHERE u.email = e.email AND t.created > e.valid_from
ORDER BY DATEDIFF(t.created, e.valid_from) LIMIT 1
) AS valid_from,
...
...
...
FROM tickets t
JOIN users u ON t.assignee_id = u.user_id

关于mysql - 选择分组中的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51524264/

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