我在查询时遇到了麻烦。在日期范围内获取最大数据而无重复MYSQL
SELECT * FROM YourTable AS T1
INNER JOIN
(SELECT user_id , MIN(some_timestamp) AS some_timestamp FROM YourTable
GROUP BY user_id) AS T2
ON T1.User_Id = T2.User_Id AND T1.some_timestamp = T2.some_timestamp
WHERE Some_Timestamp BETWEEN '13-Jun-12 08:00' AND '13-Jun-12 10:00'
表名:YourTable
| PK_ID | USER_ID | SOME_TIMESTAMP |
------------------------------------|
| 1 | 123 | 13-Jun-12 14:30 |
| 2 | 123 | 13-Jun-12 08:50 |
| 3 | 567 | 13-Jun-12 09:23 |
| 4 | 567 | 13-Jun-12 09:45 |
| 5 | 567 | 13-Jun-12 09:40 |
| 6 | 890 | 13-Jun-12 08:44 |
什么,我想是这样的
1.从特定日期范围内获取数据[13军12 08:00] &之间[13-Jun-12 10:00]
2.一旦获取范围内的日期,它将获取最新的日期而不重复。
输出应该是这样的:
1.date范围之间
[13-Jun-12 08:00] & [13-Jun-12 10:00]
2.只取不重复的最新时间戳。
结果应该是这样的
| PK_ID | USER_ID | SOME_TIMESTAMP |
------------------------------------|
| 2 | 123 | 13-Jun-12 08:50 |
| 4 | 567 | 13-Jun-12 09:45 |
| 6 | 890 | 13-Jun-12 08:44 |
非常感谢大家!
这将返回不正确的pk_id为567 - 它应该返回4. – sgeddes 2013-03-28 02:00:21
要小心这种方法..这是一个快捷方式,只有当所有其他数据是相同的。..作为@sgeddes指出,这失败在这里,因为它选错了pk_id – whiteatom 2013-04-06 13:25:30