如何按一列值对相邻行进行分组,以便只返回这些分组行中最近的一行?
内部数据 travel
table
id name location date
--------------------------------------------
1 name London 2018-09-01 00:00:00
2 name London 2018-09-02 00:00:00
3 name NYC 2018-09-03 00:00:00
4 name London 2018-09-04 00:00:00
5 name NYC 2018-09-05 00:00:00
6 name NYC 2018-09-06 00:00:00
7 name Tokyo 2018-09-07 00:00:00
结果(顺序颠倒)
7 name Tokyo 2018-09-07 00:00:00
6 name NYC 2018-09-06 00:00:00
4 name London 2018-09-04 00:00:00
3 name NYC 2018-09-03 00:00:00
2 name London 2018-09-02 00:00:00
摆弄:http://sqlfiddle.com/#!2015年9月20日至33日
1条答案
按热度按时间70gysomp1#
使用double
NOT EXISTS
. 简单地说,选择所有行,除了那些在将来存在相同位置而在它们之间不存在不同位置的行。修订的sql fiddle