2011-12-25 2 views
2

Я хотел бы найти, надеюсь, простое решение следующей проблемы.Как написать запрос, который возвращает строку для каждого отдельного значения в одном столбце и возвращает произвольное значение из другого столбца?

У меня есть таблица, как этот

Name - GUID 

NameA {AH42-AJG5-AFHA}  
NameA {AJD4-AFJ4-HVFA}  
NameB {BGA4-AJGA-GHAA} 
NameB {JGA8-GGK1-KLP9}  
NameA {KGA4-JAD4-GJA9} 

пример моего желаемого результата является

NameA {AH42-AJG5-AFHA} 
NameB {BGA4-AJGA-GHAA} 

Я хочу точно 1 запись для определенного имени, и мне нужна GUID, который был связан с это имя во втором столбце. (Возвращаемый GUID произвольный)

Спасибо за ваш совет.

+0

Какие РСУБД? Как вы определяете, какой гид следует возвращать? Это произвольно? Также каков тип данных 'GUID', поскольку они не похожи на фактические направляющие? –

+0

Учитывая ваш образец, это означает, что вы хотите получить наименьший GUID в лексикографическом порядке? – fge

+0

Какой GUID вы хотите получить за данное имя? –

ответ

4

Предполагая, что GUID возвращается, не имеет значения; если у него есть ассоциированный член с одним из имен.

Select [name], min([GUID]) as mGuid 
FROM tableLikeThis 
Group by [Name] 
+0

Это действительно не имеет значения, я попробую ваш код. – user974631

+0

он работает, но результаты запроса любопытное странно = " checkDEC {09006050-90E3-46d8-965E-8151F0DA6215}" должно быть " checkDEC {09006050-90E3-46d8-965E-8151F0DA6215}" любые идеи для этого? – user974631

+0

@ user974631 - Вы должны указать псевдоним столбца 'min (GUID) AS GUID'. –

0

Просто упомянуть альтернативный способ сделать это (xQbert уже ответил на вопрос). Вы могли бы что-то сделать:

SELECT DISTINCT ON (Guid) Name, Guid 
FROM Table