Создайте столбец серийного номера для лекарств на основе его категории - PullRequest
0 голосов
/ 13 июля 2020

Мне нужно создать столбец Sno для списка лекарств. Пожалуйста, go воспользуйтесь приведенным ниже образцом для справки. Тип = D-Диабети c препарат О-Другой препарат

ID  Date       Typ Drug
123 02/05/2020 D   aaa
123 02/05/2020 D   bbb
123 02/05/2020 D   nnn
123 02/05/2020 O   ccc
123 02/05/2020 O   fff
123 05/06/2020 D   asd
456 12/06/2020 D   wef
456 12/06/2020 D   fgf
456 12/06/2020 O   rty 

Ожидаемый выход

ID  Date       Typ Drug Sno
123 02/05/2020 D   aaa  1
123 02/05/2020 D   bbb  2
123 02/05/2020 D   nnn  3
123 02/05/2020 O   ccc  1
123 02/05/2020 O   fff  2
123 05/06/2020 D   asd  1
456 12/06/2020 D   wef  1
456 12/06/2020 D   fgf  2
456 12/06/2020 O   rty  1

Ответы [ 2 ]

1 голос
/ 13 июля 2020

О, я думаю, что понимаю правило.

«Для каждого типа лекарства в каждую дату серийный номер должен увеличиваться в алфавитном порядке».

Хорошо.

select    ID,
          [Date],
          Typ,
          Drug,
          Sno = row_number() over (partition by Date, Typ order by Drug asc)
from      YourTable

Если вам также нужно разделить по ID, укажите это также:

select    ID,
          [Date],
          Typ,
          Drug,
          Sno = row_number() over (partition by ID, Date, Typ order by Drug asc)
from      YourTable
0 голосов
/ 13 июля 2020

Вы можете попробовать следующее -

select * row_number() over (partition by ID, Typ order by Drug) as Sno
from tablename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...