我有来自不同歌手的音乐活动清单,每个歌手都有不同的音乐会,我需要提取下一个活动'以这种方式,我为每个歌手选择下一次出现而只选择下一次出现
例如此表
id | singerId | occurrence
1 | 1 | 2017-01-01
2 | 1 | 2017-02-01
3 | 2 | 2017-03-01
4 | 2 | 2017-04-01
结果应该是
id | singerId | occurrence
1 | 1 | 2017-01-01
3 | 2 | 2017-03-01
我已经尝试了
select distinct * from table
where occurrence > '2016-12-12 22:10:00'
group by singerId
order by occurrence
但不知怎的,我并没有在所有情况下得到下一次出现,有时一次出现在中间,而不是下一次出现
'下一个'是最接近2016-12-12 22:10:00大于它
我的查询有什么问题?
答案 0 :(得分:2)
根据您的意思,试试这个。对“下一次出现”的定义非常模糊。
select id, singerId, Min(Occurrence) Occurrence
from table
where occurrence > '2016-12-12 22:10:00'
group by id, singerId
order by occurrence