2013-11-10 3 views
0

У меня есть три столбца в одной таблице (код, код alt и продукт). Кодовая колонка имеет повторяющиеся данные. Я хочу оставить все результаты без повторения столбца кода. Я стараюсь с этимвыбрать группу по sql несколько столбцов

Select code, code alt, product from table 
where code in 
    (
    select code from table 
    group by code 
    having count (code)=1 
    ) 

но не отображаются все результаты.

Благодаря

+0

кабины вы предоставляете некоторые образцы данных с ожидаемым результатом? – Mureinik

ответ

0

Если вы хотите оставить только одну строку с определенным кодом из сгустка строк с тем же кодом, Вы должны решить, какие один из нескольких строк вы хотите оставить.

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

Это просто пример, который показывает вам идею и предназначено для SQL Server - потому что вы не указали свой СУБД

with [src] as (
    select code, [code alt], product, rank() over(partition by code order by newid()) [rank] 
    from [table]) 
select * from [src] where [rank] = 1 

Ranking Functions

Смежные вопросы