ID | 用户 ID | 设备号 | 添加时间 |
---|---|---|---|
无序 ID | 1 | 88 | 2022-06-01 02:00:00 |
无序 ID | 1 | 88 | 2022-06-02 02:00:00 |
无序 ID | 1 | 88 | 2022-06-03 02:00:00 |
无序 ID | 1 | 99 | 2022-06-01 02:00:00 |
无序 ID | 1 | 99 | 2022-06-02 02:00:00 |
无序 ID | 1 | 99 | 2022-06-03 02:00:00 |
无序 ID | 2 | 77 | 2022-06-01 02:00:00 |
无序 ID | 2 | 77 | 2022-06-02 02:00:00 |
无序 ID | 2 | 77 | 2022-06-03 02:00:00 |
无序 ID | 2 | 66 | 2022-06-01 02:00:00 |
无序 ID | 2 | 66 | 2022-06-02 02:00:00 |
无序 ID | 2 | 66 | 2022-06-03 02:00:00 |
无序 ID | 3 | 88 | 2022-07-03 02:00:00 |
以 用户 ID
and 设备号
为并且条件,获取每个用户的设备最后一次的添加时间,请问应该怎么写呢
1
HHHHHQ 2022-09-02 11:43:08 +08:00 via Android
用 max 函数啊
|
2
mineralsalt 2022-09-02 11:48:19 +08:00
我都是倒序排, 然后取一条, 不知道有没有更好性能的写法, 没操作过大数据
select * from xxxx while id = 'xxx' order by create_time desc limit 1 |
3
tangv2 2022-09-02 11:52:49 +08:00
row_number() over(partition by 用户 ID ,设备号 order by 添加时间 desc ) as cn
|
4
CEBBCAT 2022-09-02 12:17:54 +08:00
类似于这个,不知道 SQL Server 可不可以这么用。
DELETE t1 FROM test t1, test t2 WHERE t1.id > t2.id AND t1.email = t2.email Ref: https://stackoverflow.com/a/51997854 --- 不过我觉得还是加一个单调 ID 列比较好 |
5
hgc81538 2022-09-02 12:40:15 +08:00
select * from `table` where `user_id` = :user_id and `device_id` = :device_id order by `created_at` desc limit 1;
|
6
wxf666 2022-09-02 12:43:09 +08:00
这样?
SELECT MAX(添加时间) FROM xxx GROUP BY 用户 ID, 设备号 『以 用户 ID and 设备号 为并且条件』是啥。。读不懂。。 |
7
abc0123xyz 2022-09-02 13:11:32 +08:00
SET @row_number = 0, @customer_no = 0;
|
8
abc0123xyz 2022-09-02 13:13:10 +08:00
@abc0123xyz #7 看错了,以为是 mysql
|
9
cnoder 2022-09-02 14:45:30 +08:00
select user_id,device_id,max(login_time) as recent_login_time from table group by user_id,device_id;
|
10
Maxwe11 2022-09-03 01:15:49 +08:00
row_number() +1
|