powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пронумеровать записи, почти как DENSE_RANK
6 сообщений из 6, страница 1 из 1
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843288
DevIgo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT
groupId
,sortIndex
,DENSE_RANK() over(order by sortIndex) resultSortIndex
,DENSE_RANK() over(order by groupId) resultSortIndexByGroup
from (
select
22132135 groupId
,1 sortIndex
union all
select
3233 groupId
,2 sortIndex
union all
select
3233 groupId
,3 sortIndex
union all
select
3233 groupId
,4 sortIndex
union all
select
563465 groupId
,5 sortIndex
) t



Хотелось бы в соответствии с сортировкой по sortIndex по одинаковым groupId получить одинаковые значения номеров по возрастанию
В общем DENSE_RANK вроде позволяет такое сделать - поле resultSortIndexByGroup,но это не то что я хочу, т.к. не учитывается сортировка sortIndex.

Приложил картинку как хотелось бы получить итог
...
Рейтинг: 0 / 0
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843301
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавьте PARTITION BY GroupId .
...
Рейтинг: 0 / 0
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843309
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опс, поспешил...

Вы хотите получить странную сортировку. Задачу решит, например,

Код: sql
1.
DENSE_RANK() over(order by ASCII(groupId)) resultSortIndexByGroup


или иное выражение, которое задаст требуемый порядок сортировки при нумерации групп.
...
Рейтинг: 0 / 0
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843312
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843342
DevIgo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaОпс, поспешил...

Вы хотите получить странную сортировку. Задачу решит, например,

Код: sql
1.
DENSE_RANK() over(order by ASCII(groupId)) resultSortIndexByGroup


или иное выражение, которое задаст требуемый порядок сортировки при нумерации групп.
Не совсем то, что нужно, т.к. тут просто совпал результат ASCII нужно очередностью, но спасибо)
...
Рейтинг: 0 / 0
Помогите пронумеровать записи, почти как DENSE_RANK
    #39843344
DevIgo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так получилось
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
select
groupId
,sortIndex
,DENSE_RANK() over(order by minSortIndex) resultSortIndex
from (
	SELECT
	groupId
	,sortIndex
	,min(sortIndex) over(partition by groupId order by sortIndex) minSortIndex
	from (
	select
	42132135 groupId
	,1 sortIndex
	union all
	select
	3233 groupId
	,2 sortIndex
	union all
	select
	3233 groupId
	,3 sortIndex
	union all
	select
	3233 groupId
	,4 sortIndex
	union all
	select
	563465 groupId
	,5 sortIndex
	) t
) t
order by sortIndex
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пронумеровать записи, почти как DENSE_RANK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]