MySQL按事件选择第一个出现的组

时间:2017-01-03 20:47:07

标签: mysql sql

我有来自不同歌手的音乐活动清单,每个歌手都有不同的音乐会,我需要提取下一个活动'以这种方式,我为每个歌手选择下一次出现而只选择下一次出现

例如此表

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大于它

我的查询有什么问题?

1 个答案:

答案 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