我将首先通过一些示例数据向您展示我的数据库的外观:
| id | type | id_user | date |
| 0 | 0 | 1 | 1 |
| 1 | 0 | 2 | 2 |
| 2 | 1 | 1 | 3 |
| 3 | 0 | 3 | 4 |
| 4 | 0 | 1 | 5 |
| 5 | 1 | 1 | 6 |
这是跟踪什么时候人们离开或加入组,我试图让有多少人在一个组中。
例如,这个表的历史看起来像:(type 0 = joins, type 1 = Leaves)
user 1 joins at time 1
user 2 joins at time 2
user 1 leaves at time 3
user 3 joins at time 4
user 1 joins at time 5
user 1 leaves at time 6
因此,如果我在哪里查询组中有多少人,它将是 2,因为用户 1 离开了 2 次,并且现在组中只有用户 2,3。
在过去的一个半小时里,我一直在玩,但似乎什么都做不了。我真的对 MAX() 感到困惑,因为它没有返回我认为正确的结果(尽管我知道我在做一些完全错误的事情)
SELECT *,MAX(date) from myTable GROUP BY id_user
以上是我目前的想法,但它没有给我任何我想要的东西。
我进入 PHPMyAdmin 并尝试了非常简单的 MAX() 只是为了获得最大的日期(我知道你可以通过 ORDER BY date DESC 来做到这一点,但这不是我想要的。这只是一个测试):
SELECT *,MAX(date) from myTable
但是,这将返回列表中的第一行。所以我多玩了一点,把一个 MAX(date) 作为 D,我发现它实际上是返回第一列,然后在最高日期上拍打:
| id | type | id_user | date | D |
| 0 | 0 | 1 | 1 | 6 |
我试过用谷歌搜索这个并查看了其他 SO 问题,但找不到任何可以解决我问题的东西。如果有人知道我在 MAX 上做错了什么,或者对解决方法有任何建议,我将不胜感激。(我觉得我的查询必须更加密集。)无论如何,谢谢。