gpt4 book ai didi

mysql - 如何通过 MySQL 返回基于上次事件日期的列值

转载 作者:行者123 更新时间:2023-11-29 02:27:40 26 4
gpt4 key购买 nike

我希望能够返回名为“completed_by”的列的值,其中 completed_on 是最大值

我有下表

CREATE TABLE activity(
id int(11) AUTO_INCREMENT,
completed_on datetime,
completed_by int(11),
activity_code int(11)
)

如果我有

100, '2013-07-01 00:00:00', 11, 20
150, '2013-01-01 00:00:00', 12, 20

我想返回值 11。注意这里唯一给出的值是 activity_code。

逻辑应返回 completed_by 最后一次完成 activity_code = 20。我应该只返回 1 行

这是我所做的,但不确定这是否是一个好的查询,因为表事件有很多记录。

SELECT 
completed_by,
MAX(completed_on ) AS completed_on
FROM activity
WHERE activity_code = 5 LIMIT 1

最佳答案

一条记录的最大值:

SELECT * FROM activity 
WHERE activity_code = 20
ORDER BY completed_on DESC LIMIT 1

所有事件代码的最大值:

SELECT * FROM activity a
WHERE NOT EXISTS(SELECT ID
FROM activity b
WHERE a.activity_code = b.activity_code
AND b.completed_on > a.completed_on)

fiddle demo

关于mysql - 如何通过 MySQL 返回基于上次事件日期的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665758/

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