我有这个记录:
id | user_id | date
1 | 1 | 2015-01-01
2 | 1 | 2015-01-05
3 | 2 | 2014-01-01
4 | 2 | 2014-01-30
5 | 3 | 2014-01-25
6 | 3 | 2014-02-28
我想为每个用户选择日期范围,按日期范围长度排序。
所以,在结果中我想得到这个:
user_id | min_date | max_date
2 | 2014-01-01 | 2014-01-30
3 | 2014-01-25 | 2014-02-28
1 | 2015-01-01 | 2015-01-05
是否可以使用sql查询?
答案 0 :(得分:2)
我必须遗漏一些令人沮丧的事情,这不仅仅是一个简单的小组吗?
SELECT user_id,
min(date),
max(date)
FROM test_table
GROUP BY user_id
ORDER BY max(date) - min(date) DESC,
user_id;
答案 1 :(得分:1)
SELECT * FROM
(
SELECT user_id, MIN(date) AS min_date,
MAX(date) AS max_date FROM test_table
GROUP BY user_id
) t
ORDER BY max_date- min_date DESC