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

Откуда:
Сообщений: 823
Доброе день!

Подскажите пожалуйста как преобразовать этот результат

indexdense_rank
aaa1
bbb2
bbb2
bbb2
ccc3
ddd4
eee5
eee5
fff6


В такой
indexdense_rank
aaa1
bbb2
bbb
bbb
ccc3
ddd4
eee5
eee
fff6

?
13 фев 20, 13:03    [22079187]     Ответить | Цитировать Сообщить модератору
 Re: dense_rank вывод только первого значения группы  [new]
invm
Member

Откуда: Москва
Сообщений: 9079
По тем же критериям строки, где row_number() = 1
13 фев 20, 13:05    [22079191]     Ответить | Цитировать Сообщить модератору
 Re: dense_rank вывод только первого значения группы  [new]
Nechto
Member

Откуда:
Сообщений: 823
Стандартных функций нет, или только через row_number vs case?
13 фев 20, 13:10    [22079198]     Ответить | Цитировать Сообщить модератору
 Re: dense_rank вывод только первого значения группы  [new]
entrypoint
Member

Откуда:
Сообщений: 227
Nechto,

WITH a([index], [dense_rank]) AS (
    SELECT 'aaa', 	1 UNION ALL
    SELECT 'bbb', 	2 UNION ALL
    SELECT 'bbb', 	2 UNION ALL
    SELECT 'bbb', 	2 UNION ALL
    SELECT 'ccc', 	3 UNION ALL
    SELECT 'ddd', 	4 UNION ALL
    SELECT 'eee', 	5 UNION ALL
    SELECT 'eee', 	5 UNION ALL
    SELECT 'fff', 	6
)
SELECT 
    a.[index], 
    CASE ROW_NUMBER() OVER(PARTITION BY a.[index] ORDER BY a.[dense_rank] ) 
	   WHEN 1 THEN CONVERT(VARCHAR(13), a.[dense_rank]) 
	   ELSE '' 
    END AS [dense_rank]
FROM a
13 фев 20, 13:13    [22079203]     Ответить | Цитировать Сообщить модератору
 Re: dense_rank вывод только первого значения группы  [new]
Nechto
Member

Откуда:
Сообщений: 823
Спасибо!
20 фев 20, 14:44    [22083853]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить