gpt4 book ai didi

mysql - 如何根据特定列值仅选择最后一个条目,保持当前表顺序

转载 作者:行者123 更新时间:2023-11-29 22:07:17 25 4
gpt4 key购买 nike

我有一个表,用于跟踪学生目录中应用于学生的最新更改。我想每分钟从该表返回数据,这样我就可以使用我的 java 应用程序仅同步必要的条目。

碰巧我只需要每个 ID 的最后一个 event_type 条目。我刚刚创建了一个小艺术来以图形方式解释我想要的内容,但该网站不允许我发布它,因为我的声誉还很低。我会尝试发布它的链接:

What I have                                        What I would like
+---------------------+------------+------------+ +---------------------+------------+------------+
| event_time | event_type | student_id | | event_time | event_type | student_id |
+---------------------+------------+------------+ +---------------------+------------+------------+
| 2015-08-16 11:42:08 | 1 | 37 | | 2015-08-16 11:44:30 | 1 | 37 |
| 2015-08-16 11:42:29 | 1 | 37 | | 2015-08-16 11:45:47 | 2 | 37 |
| 2015-08-16 11:43:51 | 2 | 37 | | 2015-08-16 12:21:40 | 1 | 44 |
| 2015-08-16 11:44:13 | 3 | 37 | | 2015-08-16 12:21:49 | 3 | 44 |
| 2015-08-16 11:44:30 | 1 | 37 | | 2015-08-16 12:21:55 | 2 | 30 |
| 2015-08-16 11:45:47 | 2 | 37 | | 2015-08-16 12:22:00 | 3 | 37 |
| 2015-08-16 12:21:28 | 2 | 44 | | 2015-08-16 12:27:08 | 2 | 44 |
| 2015-08-16 12:21:40 | 1 | 44 | +---------------------+------------+------------+
| 2015-08-16 12:21:49 | 3 | 44 |
| 2015-08-16 12:21:55 | 2 | 30 |
| 2015-08-16 12:22:00 | 3 | 37 |
| 2015-08-16 12:27:08 | 2 | 44 |
+---------------------+------------+------------+

知道我该怎么做吗?我搜索了该网站,但找不到任何适合于此的内容。感谢您的帮助!

最佳答案

例如:

SELECT x.* 
FROM my_table x
JOIN my_table y
ON y.student_id = x.student_id
AND y.event_time >= x.event_time
GROUP
BY x.student_id
, x.event_time
HAVING COUNT(*) <= 3
ORDER
BY event_time;

或者,更快...

SELECT event_time
, event_type
, student_id
FROM
( SELECT x.*
, CASE WHEN @prev = student_id THEN @i := @i + 1 ELSE @i := 1 END i
, @prev := student_id
FROM my_table x
, (SELECT @i:=1,@prev:='') vars
ORDER
BY student_id
, event_time DESC
) n
WHERE i <= 3
ORDER
BY event_time;

关于mysql - 如何根据特定列值仅选择最后一个条目,保持当前表顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32037153/

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