gpt4 book ai didi

mysql - 对具有多个主键的表进行子查询

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

这是我的表格:

t_task_event
------------
f_date
f_client_id
f_task_id
f_event

每个任务可以为多个客户创建。每个事件都注册在此表中。正如你所看到的,没有 event_id,这很烦人,看看为什么:

我想获取最后一个事件为“错误”的所有任务。我认为我应该创建一个子查询来获取为客户注册的任务的所有最后事件。我是这样做的:

SELECT f_task_id, MAX( f_date ) AS f_date_max
FROM t_task_event
WHERE f_client_id =121

但是对于这个结果,我如何过滤以仅保留事件为“错误”的行?也许有一种方法可以从这对(f_task_id,f_date_max)创建一种 key 。有什么想法吗?

最佳答案

SELECT
t.f_task_id
,t.f_client_id
,MAX(CASE WHEN t.f_event = 'Error' THEN t.f_date END) as MaxErrorDate
,MAX(t.f_date) As MaxEventDate
FROm
t_task_event t
WHERE
t.f_client_id = 121
GROUP BY
t.f_task_id
,t.f_client_id
HAVING
MAX(CASE WHEN t.f_event = 'Error' THEN t.f_date END) = MAX(t.f_date)

您应该能够比较条件聚合的结果以查找错误的最大日期,并与 MAX(date) 进行比较以仅获取“最新”记录是的事件错误。

关于mysql - 对具有多个主键的表进行子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38922539/

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