Как добавить новый столбец (не существует) в результате выбора? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть эта таблица:

name   dep_id   age
admin  1         22  
admin2 1         23
admi   2         24
ad     2         22
aa     2         23

Я хочу вернуть результат, который содержит новый столбец с именем «dep_num», и этот столбец не существует в основной таблице, и его счет тот же dep_id, я имею в видуadmin и admin2 имеют один и тот же dep_id, поэтому он содержит 1,2, а затем admi имеет другое значение dep_id, поэтому его счет от первого 1 и т. д., например, результат:

dep_num       name   dep_id   age
1             admin  1         22  
2             admin2 1         23
1             admi   2         24
2             ad     2         22
3             aa     2         23

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Попробуйте запрос ниже:

select RANK() OVER (PARTITION BY dep_id ORDER BY id) dept_num,
  name,
  dep_id,
  age
from table
0 голосов
/ 22 октября 2018

Предположим, имя таблицы table_deps:

alter table table_deps
add (dep_num int default 0);

update table_deps d
set dep_num = 1 + (select count(*)
                   from table_deps p 
                   where p.dep_id = d.dep_id
                   and p.name < d.name);

Не уверен, что ОБНОВЛЕНИЕ работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...