Home Forums SQL Server 2008 T-SQL (SS2K8) Most efficient way to get a single unique combined record for distributed information corresponding to same ID RE: Most efficient way to get a single unique combined record for distributed information corresponding to same ID

  • dwain.c (11/17/2013)


    If contact number is the only column that may have duplicates, you can also do it like this.

    DECLARE @temp TABLE(id int, name varchar(50), age int, contact_number varchar(50));

    insert into @temp(id,name) select 1,'John';

    insert into @temp(id,age) select 1,34;

    insert into @temp(id,contact_number) select 1,'222-444-5555';

    insert into @temp(id,contact_number) select 1,'333-444-5555';

    SELECT id, name, age, contact_number

    FROM

    (

    SELECT id

    ,name=MAX(name) OVER (PARTITION BY id)

    ,age=MAX(age) OVER (PARTITION BY id)

    ,contact_number

    FROM @temp

    ) a

    WHERE contact_number IS NOT NULL;

    This is a very good example but what will happen if I have thousands of IDs with such records. This approach is clearly not feasible in a transnational system where these records may keep increasing or updating.