
| ID | 用户 ID | 设备号 | 添加时间 |
|---|---|---|---|
| 无序 ID | 1 | 88 | 2022-06-01 02:00:0 |
| 无序 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 &nbp;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 |