表字段及数据: | |||
---|---|---|---|
id | amount | user_id | create_time |
1 | 100 | 1 | 2016-10-11 10:59:33 |
2 | 3000 | 2 | 2016-10-10 10:59:54 |
3 | 3256 | 1 | 2016-10-09 11:00:16 |
4 | 1546 | 1 | 2016-10-08 11:00:38 |
我想取每个user的第一条记录,
SQL:select * from test group by user_id.
结果: | |||
---|---|---|---|
id | amount | user_id | create_time |
1 | 100 | 1 | 2016-10-11 10:59:33 |
2 | 3000 | 2 | 2016-10-10 10:59:54 |
然后我发现如果根据时间来排序,无论是顺序还是逆序他都是这个结果,然后我猜想这个结果是不是根据id的大小来的,结果我改了id也是一样,然后我猜想group by 结果是根据记录添加顺序来决定的,当group by的字段出现重复时,只会取第一条记录,不知道这样对不对,求解答?
不加create_time也一样只是因为你的记录中的顺序已经是规律的了,什么排序也没有的前提下,其实group by以后取出只是所有记录中user_id第一次出现的记录
一周热门 更多>