配对,我会向您展示开始就是我的数据库看起来像一些示例数据:MySQL的最大选择最大值,但不正确的行
| 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 |
这是什么跟踪,当人们离开或加入组,是我试图弄清楚一个小组中有多少人。
例如,这台历史会是什么样子: (类型0 =加入,类型1 =叶子)
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(日期)为d和我发现,它真的返回第一列,然后拍打在最高日期:
| id | type | id_user | date | D |
| 0 | 0 | 1 | 1 | 6 |
我试着用搜索引擎这个并查看了其他SO问题,但找不到解决我问题的任何问题。如果任何人有任何想法我在做什么错误的MAX或有任何建议,对此方法我会很感激。 (我有一种感觉,我的疑问将会更加密集。)无论如何,谢谢。
参见GROUPWISE max。如果您还在挣扎,请提供一个sqlfiddle以及所需的结果。 – Strawberry