powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объединение номеров столбца
5 сообщений из 5, страница 1 из 1
Объединение номеров столбца
    #39775253
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!
Подскажите, пожалуйста.. не получается у меня самостоятельно решить вопрос((

Есть к примеру вот такая таблица:
Fruit IdFruitApple 41Kiwi 87Kiwi 87Kiwi 87Orange 56

Мне нужно присвоить номера, разделив на группы по столбцу IdFruit,но при этом, чтобы в группе нумерация начиналась не с 1, с того порядкого номера, который следующий за группой. Кароче вот что нужно получить - столбец NumberFruit:
Fruit IdFruit NumberFruitApple 41 1Kiwi 87 2Kiwi 87 2Kiwi 87 2Orange 56 3

Я пытаюсь вот так сделать, но группа всегда с 1..
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[Fruits] ([Fruit] [nvarchar] (10) NULL, [IdFruit] [int] NULL)

INSERT INTO [Fruits] VALUES ('Apple', 41), ('Kiwi', 87), ('Kiwi', 87), ('Kiwi', 87), ('Orange', 56)

SELECT  *, (ROW_NUMBER() OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit])) AS NumberFruit 
FROM [Fruits]
ORDER BY 1
...
Рейтинг: 0 / 0
Объединение номеров столбца
    #39775261
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisSpЯ пытаюсь вот так сделать, но группа всегда с 1..
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[Fruits] ([Fruit] [nvarchar] (10) NULL, [IdFruit] [int] NULL)

INSERT INTO [Fruits] VALUES ('Apple', 41), ('Kiwi', 87), ('Kiwi', 87), ('Kiwi', 87), ('Orange', 56)

SELECT  *, (ROW_NUMBER() OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit])) AS NumberFruit 
FROM [Fruits]
ORDER BY 1

Код: sql
1.
2.
3.
SELECT  *, ROW_NUMBER() OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit]) + MIN([IdFruit]) OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit]) - 1 AS NumberFruit
FROM [Fruits]
ORDER BY 1
...
Рейтинг: 0 / 0
Объединение номеров столбца
    #39775264
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgLisSpЯ пытаюсь вот так сделать, но группа всегда с 1..
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[Fruits] ([Fruit] [nvarchar] (10) NULL, [IdFruit] [int] NULL)

INSERT INTO [Fruits] VALUES ('Apple', 41), ('Kiwi', 87), ('Kiwi', 87), ('Kiwi', 87), ('Orange', 56)

SELECT  *, (ROW_NUMBER() OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit])) AS NumberFruit 
FROM [Fruits]
ORDER BY 1

Код: sql
1.
2.
3.
SELECT  *, ROW_NUMBER() OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit]) + MIN([IdFruit]) OVER(PARTITION BY [IdFruit] ORDER BY [IdFruit]) - 1 AS NumberFruit
FROM [Fruits]
ORDER BY 1



Получилось, к сожалению, не то...

Apple 41 41Kiwi 87 87Kiwi 87 88Kiwi 87 89Orange 56 56
...
Рейтинг: 0 / 0
Объединение номеров столбца
    #39775269
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisSpПолучилось, к сожалению, не то...А, не так понял...
Код: sql
1.
2.
3.
SELECT  *, DENSE_RANK() OVER(ORDER BY [Fruit]) AS NumberFruit 
FROM [Fruits]
ORDER BY 1
...
Рейтинг: 0 / 0
Объединение номеров столбца
    #39775270
LisSp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgLisSpПолучилось, к сожалению, не то...А, не так понял...
Код: sql
1.
2.
3.
SELECT  *, DENSE_RANK() OVER(ORDER BY [Fruit]) AS NumberFruit 
FROM [Fruits]
ORDER BY 1



Спасибо большое!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объединение номеров столбца
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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