I am trying to create a query that can split multiple values in a column into multiple columns to help “remove duplicates” of the dataset.
It is best explained in the data below, but basically you will notice the interval field, which is DENSE RANK by the columns ID, START, FINISH, DURATION, COD. Due to multiple overlapping PSSID and CSSID values, these intervals are duplicated. I would like to know if there is a good way to dynamically split overlapping PSSID and CSSID fields into multiple columns ...! Okay, so what I really mean ...
SAMPLES DATA:
ID START FINISH DURA COD INT PSSID CSSID
A1 33.18 33.27 0.09 ST 15 N13045 NULL
A1 33.18 33.27 0.09 ST 15 N13046 NULL
A1 33.27 33.285 0.015 DU 16 N13046 NULL
A1 33.27 33.285 0.015 DU 16 NULL N20015
A1 33.27 33.285 0.015 DU 16 NULL N2001516
A1 33.27 33.285 0.015 DU 16 NULL N20033
A1 33.285 33.35 0.065 BM 17 N13046 NULL
A1 33.285 33.35 0.065 BM 17 NULL N20015
A1 33.285 33.35 0.065 BM 17 NULL N2001516
A1 33.285 33.35 0.065 BM 17 NULL N20033
A1 33.35 33.395 0.045 DM 18 N13046 NULL
A1 33.35 33.395 0.045 DM 18 NULL N20015
A1 33.35 33.395 0.045 DM 18 NULL N2001516
A1 33.35 33.395 0.045 DM 18 NULL N20033
A1 33.395 33.44 0.045 DN 19 N13046 NULL
A1 33.395 33.44 0.045 DN 19 NULL N20015
A1 33.395 33.44 0.045 DN 19 NULL N2001516
A1 33.395 33.44 0.045 DN 19 NULL N20033
A1 33.44 33.485 0.045 BM 20 N13046 NULL
A1 33.44 33.485 0.045 BM 20 NULL N2001516
A1 33.44 33.485 0.045 BM 20 NULL N20033
A1 33.44 33.485 0.045 BM 20 NULL N20034
A1 33.485 33.51 0.025 DN 21 N13046 NULL
A1 33.485 33.51 0.025 DN 21 NULL N2001516
A1 33.485 33.51 0.025 DN 21 NULL N20033
A1 33.485 33.51 0.025 DN 21 NULL N20034
A1 33.51 33.595 0.085 DB 22 N13046 NULL
A1 33.51 33.595 0.085 DB 22 NULL N2001516
A1 33.51 33.595 0.085 DB 22 NULL N20034
A1 33.595 33.665 0.07 DN 23 N13046 NULL
A1 33.595 33.665 0.07 DN 23 NULL N2001516
A1 33.595 33.665 0.07 DN 23 NULL N20034
A1 33.665 33.785 0.12 DB 24 NULL N2001516
A1 33.785 33.79 0.005 YS 25 NULL NULL
A1 33.79 33.83 0.04 BM 26 NULL NULL
DESIRED OUTPUT:
ID START FINISH DURA COD INT PSSID1 PSSID2 CSSID1 CSSID2 CSSID3
A1 33.18 33.27 0.09 ST 15 N13046 N13045 NULL NULL NULL
A1 33.27 33.285 0.015 DU 16 N13046 NULL N20015 N2001516 N20033
A1 33.285 33.35 0.065 BM 17 N13046 NULL N20015 N2001516 N20033
A1 33.35 33.395 0.045 DM 18 N13046 NULL N20015 N2001516 N20033
A1 33.395 33.44 0.045 DN 19 N13046 NULL N20015 N2001516 N20033
A1 33.44 33.485 0.045 BM 20 N13046 NULL N20034 N2001516 N20033
A1 33.485 33.51 0.025 DN 21 N13046 NULL N20034 N2001516 N20033
A1 33.51 33.595 0.085 DB 22 N13046 NULL N20034 N2001516 NULL
A1 33.595 33.665 0.07 DN 23 N13046 NULL N20034 N2001516 NULL
A1 33.665 33.785 0.12 DB 24 NULL NULL NULL N2001516 NULL
A1 33.785 33.79 0.005 YS 25 NULL NULL NULL NULL NULL
A1 33.79 33.83 0.04 BM 26 NULL NULL NULL NULL NULL
, , PSSID, CSSID ( 5). , .
SQL Server 2012. :
CREATE TABLE
([ID] varchar(2), [START] decimal(9,2), [FINISH] decimal(9,2), [DURA] decimal(9,2), [COD] varchar(2), [INT] int, [PSSID] varchar(6), [CSSID] varchar(8))
;
INSERT INTO
([ID], [START], [FINISH], [DURA], [COD], [INT], [PSSID], [CSSID])
VALUES
('A1', 33.18, 33.27, 0.09, 'ST', 15, 'N13045', NULL),
('A1', 33.18, 33.27, 0.09, 'ST', 15, 'N13046', NULL),
('A1', 33.27, 33.285, 0.015, 'DU', 16, 'N13046', NULL),
('A1', 33.27, 33.285, 0.015, 'DU', 16, NULL, 'N20015'),
('A1', 33.27, 33.285, 0.015, 'DU', 16, NULL, 'N2001516'),
('A1', 33.27, 33.285, 0.015, 'DU', 16, NULL, 'N20033'),
('A1', 33.285, 33.35, 0.065, 'BM', 17, 'N13046', NULL),
('A1', 33.285, 33.35, 0.065, 'BM', 17, NULL, 'N20015'),
('A1', 33.285, 33.35, 0.065, 'BM', 17, NULL, 'N2001516'),
('A1', 33.285, 33.35, 0.065, 'BM', 17, NULL, 'N20033'),
('A1', 33.35, 33.395, 0.045, 'DM', 18, 'N13046', NULL),
('A1', 33.35, 33.395, 0.045, 'DM', 18, NULL, 'N20015'),
('A1', 33.35, 33.395, 0.045, 'DM', 18, NULL, 'N2001516'),
('A1', 33.35, 33.395, 0.045, 'DM', 18, NULL, 'N20033'),
('A1', 33.395, 33.44, 0.045, 'DN', 19, 'N13046', NULL),
('A1', 33.395, 33.44, 0.045, 'DN', 19, NULL, 'N20015'),
('A1', 33.395, 33.44, 0.045, 'DN', 19, NULL, 'N2001516'),
('A1', 33.395, 33.44, 0.045, 'DN', 19, NULL, 'N20033'),
('A1', 33.44, 33.485, 0.045, 'BM', 20, 'N13046', NULL),
('A1', 33.44, 33.485, 0.045, 'BM', 20, NULL, 'N2001516'),
('A1', 33.44, 33.485, 0.045, 'BM', 20, NULL, 'N20033'),
('A1', 33.44, 33.485, 0.045, 'BM', 20, NULL, 'N20034'),
('A1', 33.485, 33.51, 0.025, 'DN', 21, 'N13046', NULL),
('A1', 33.485, 33.51, 0.025, 'DN', 21, NULL, 'N2001516'),
('A1', 33.485, 33.51, 0.025, 'DN', 21, NULL, 'N20033'),
('A1', 33.485, 33.51, 0.025, 'DN', 21, NULL, 'N20034'),
('A1', 33.51, 33.595, 0.085, 'DB', 22, 'N13046', NULL),
('A1', 33.51, 33.595, 0.085, 'DB', 22, NULL, 'N2001516'),
('A1', 33.51, 33.595, 0.085, 'DB', 22, NULL, 'N20034'),
('A1', 33.595, 33.665, 0.07, 'DN', 23, 'N13046', NULL),
('A1', 33.595, 33.665, 0.07, 'DN', 23, NULL, 'N2001516'),
('A1', 33.595, 33.665, 0.07, 'DN', 23, NULL, 'N20034'),
('A1', 33.665, 33.785, 0.12, 'DB', 24, NULL, 'N2001516'),
('A1', 33.785, 33.79, 0.005, 'YS', 25, NULL, NULL),
('A1', 33.79, 33.83, 0.04, 'BM', 26, NULL, NULL)
;
!