我有一张表格,格式如下:
|name |visited_property|visit_date_time |
|Marry|Residence_inn |05-25-2020 15:00:01|
|Marry|Residence_inn |05-25-2020 15:15:01|
|Marry|Residence_inn |05-25-2020 15:30:01|
|Marry|Hilton_garden |05-25-2020 17:10:01|
|Marry|Marriott_hotel |05-25-2020 18:10:01|
|Harry|Hilton_garden |05-26-2020 10:10:01|
|Harry|Residence_inn |05-26-2020 12:10:01|
|Harry|Hilton_garden |05-26-2020 15:10:01|
我想写一个查询来获得他们访问的不同属性(以及访问顺序)的列表。如果他们连续参观同一处房产,我想算一次。如果他们不连续地参观同一家酒店,我想把参观次数分开计算。
理想情况下,我希望复制表,去掉连续的重复,得到这样的结果(去掉marry第二次和第三次访问residence inn,因为它连续三次访问该酒店,同时保留harry两次访问希尔顿花园,因为它们不是连续的):
|name |visited_property|visit_date_time |
|Marry|Residence_inn |05-25-2020 15:00:01|
|Marry|Hilton_garden |05-25-2020 17:10:01|
|Marry|Marriott_hotel |05-25-2020 18:10:01|
|Harry|Hilton_garden |05-26-2020 10:10:01|
|Harry|Residence_inn |05-26-2020 12:10:01|
|Harry|Hilton_garden |05-26-2020 15:10:01|
我可以使用什么sql语句?谢谢你的帮助。
2条答案
按热度按时间mfuanj7w1#
使用
lag()
:这将返回每个属性的第一个匹配项
name
.v440hwme2#
再加一个怎么样
unique
约束。类似以下内容: