Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 distinct по каждой колонке  [new]
den6677
Guest
Есть csv фаил например 150 колонок и надо получить из него результат где будет distinct по каждой колонке.

есть так:

col1 col2 col3 col4
df 3 dre gt 87
fr 5 dre gt null
df 3 frt null
dd null gttr null
3e 3 56t null

получить надо так:

col1 col2 col3 col4
df 3 dre gt 87
fr 5 56t null
dd null frt
3e gttr
14 окт 13, 22:28    [14969856]     Ответить | Цитировать Сообщить модератору
 Re: distinct по каждой колонке  [new]
den6677
Guest
тут лучше видно

К сообщению приложен файл. Размер - 41Kb
14 окт 13, 22:31    [14969869]     Ответить | Цитировать Сообщить модератору
 Re: distinct по каждой колонке  [new]
Добрый Э - Эх
Guest
select каждого столбца по отдельности + ROW_NUMBER + JOIN результатов в единую таблицу
15 окт 13, 05:42    [14970535]     Ответить | Цитировать Сообщить модератору
 Re: distinct по каждой колонке  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
declare @t table ( col1 varchar(6), col2 varchar(6), col3 varchar(6), col4 varchar(6) )
insert into @t
values ( 'df', '3', 'dre gt', '87' )
, ( 'fr', '5', 'dre gt', null )
, ( 'df', '3', 'frt', null )
, ( 'dd', null, 'gttr', null )
, ( '3e', '3', '56t', null );

with cte
as
(
select row_number() over ( partition by col order by val ) id, * from
(
select distinct * from @t t
unpivot ( val for col in ( col1, col2, col3, col4 ) ) up
) t
)
select pv.col1, pv.col2, pv.col3, pv.col4 from cte
pivot ( max(val) for col in ( [col1], [col2], [col3], [col4] ) ) pv


col1   col2   col3   col4
------ ------ ------ ------
3e 3 56t 87
dd 5 dre gt NULL
df NULL frt NULL
fr NULL gttr NULL
15 окт 13, 07:55    [14970604]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить