create table #Location (
Location varchar(10),
Value varchar(20)
)
insert into #Location select 'loc1','value1'
insert into #Location select 'loc1','value2'
insert into #Location select 'loc2','value1'
insert into #Location select 'loc2','value2'
insert into #Location select 'loc3','value2'
insert into #Location select 'loc3','value3'
insert into #Location select 'loc4','value3'
insert into #Location select 'loc4','value4'
select Min(Location) as Location, Value from #Location group by Value
Results:
Location Value
loc1 value1
loc1 value2
loc3 value3
loc4 value4
Based on comments below of additional fields including an ID field, here is an expanded example/solution:
create table #Location (
ID int IDENTITY(1,1),
Location varchar(10),
Value varchar(20),
FieldA datetime
)
insert into #Location(Location, Value, FieldA) select 'loc1','value1',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc1','value2',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc2','value1',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc2','value2',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc3','value2',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc3','value3',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc4','value3',GETDATE()
insert into #Location(Location, Value, FieldA) select 'loc4','value4',GETDATE()
Select ID, LocSumm.Location, LocSumm.Value, FieldA from #Location L
inner join (
select Min(Location) as Location, Value from #Location group by Value) as LocSumm
on L.Location = LocSumm.Location and
L.Value = LocSumm.Value
order by LocSumm.Location, LocSumm.Value
And the new result set based on this query:
ID Location Value FieldA
1 loc1 value1 2018-09-24 09:48:45.700
2 loc1 value2 2018-09-24 09:48:45.700
6 loc3 value3 2018-09-24 09:48:45.700
8 loc4 value4 2018-09-24 09:48:45.703