SQL:过滤数据以映射所遵循的轨迹

时间:2018-03-16 17:14:12

标签: sql sql-server sql-order-by sequence

我想过滤数据,以便只保留这些行,以显示每个ID的位置顺序。知道如何用SQL实现这个目标吗?请注意,相同的位置可以多次返回,但我想映射每个后续位置变化(即轨迹)。

我不知道如何生成如此处所示的测序列(基于位置),也不知道如何在下面获得所需的结果。参见:

enter image description here

有谁知道如何在SQL Server中完成此任务?

感谢名单

2 个答案:

答案 0 :(得分:0)

这是家庭作业吗?您的SEQUENCE列可能是:

 DENSE_RANK() OVER (PARTITION BY ID ORDER BY DATE) AS 'SEQUENCE'

...派生表可以用简单的GROUP BY和ORDER BY组装。

答案 1 :(得分:0)

查询如下:

SELECT ID,Location,Date,Location FROM DataSet WHERE ID in('123456','654321')ORDER BY ID,Date

但不知道如何获得列序列(或所需结果)。

数据

ID  Date    Sales   Location    Sequence
123456  1/01/2018   5   E313    1
123456  1/01/2018   40  D412    2
123456  1/01/2018   54  D412    2
123456  4/01/2018   15  A122    3
123456  5/01/2018   45  A122    3
123456  7/01/2018   36  A122    3
123456  7/01/2018   23  D412    4
123456  8/01/2018   12  D412    4
654321  1/01/2018   5   E313    1
654321  2/01/2018   17  E313    1
654321  3/01/2018   16  D412    2
654321  4/01/2018   15  E313    3

期望的结果

ID  Location            
123456  E313            
123456  D412            
123456  A122            
123456  D412            
654321  E313            
654321  D412            
654321  E313