【发布时间】:2020-04-16 14:55:03
【问题描述】:
我正在编写这个 SQL 查询来检测最近登录系统的用户。我现在的查询:
SELECT * FROM (
SELECT * FROM events WHERE eventName = 'Login' ORDER BY eventID DESC
) AS SUBQUERY
GROUP BY personID;
这是我要读取的原始表格:
+---------+----------+-----------+--------------+----------------------------+
| eventID | personID | eventName | eventContent | timeStamp |
+---------+----------+-----------+--------------+----------------------------+
| 1 | 2 | Login | Login | On: 26/12/2019 at 16:53:34 |
| 2 | 2 | Click | Button | On: 26/12/2019 at 16:53:42 |
| 3 | 1 | Login | Login | On: 26/12/2019 at 16:53:43 |
| 4 | 1 | Login | Login | On: 26/12/2019 at 16:59:22 |
| 5 | 0 | Login | Login | On: 26/12/2019 at 17:4:34 |
| 6 | 1 | Login | Login | On: 26/12/2019 at 17:5:6 |
+---------+----------+-----------+--------------+----------------------------+
我期待的输出:
ID Login Time
1 On: 26/12/2019 at 17:5:6
0 On: 26/12/2019 at 17:4:34
2 On: 26/12/2019 at 16:53:34
输出 SQL 给我:
ID Login Time
0 On: 26/12/2019 at 17:4:34
1 On: 26/12/2019 at 16:53:43
2 On: 26/12/2019 at 16:53:34
【问题讨论】:
-
找出你正在使用的RDBMS,然后查看meta.stackoverflow.com/questions/333952/…
-
您应该包含一些示例数据和您期望的结果,选择 * 非常危险,尤其是在我们不了解您的架构的论坛中
-
如果您的样本数据能够代表您的实际数据,那么您获得可用答案的机会就更大。由于示例不包含列 eventName、eventID 或 personid,并且发布的日期不是 mysql 日期格式,它们是文本吗?..
-
我已经从头开始编辑这个问题来解释最好的。查看修改后的问题@ChrisSchaller
-
我已经从头开始编辑这个问题来解释最好的。查看修改后的问题@P.Salmon
标签: mysql sql mariadb greatest-n-per-group