Изменить таблицу на основе повторяющихся значений в postgresql - PullRequest
0 голосов
/ 18 октября 2018

Я хотел бы изменить тип на тот же элемент.Например, моя таблица выглядит так:

  item | type
   A   |  1  
   B   |  2  
   A   |  3   
   C   |  4  
   B   |  5   
   A   |  6   

Желаемый вывод:

  item | type
   A   |  1  
   B   |  2  
   A   |  1   
   C   |  3  
   B   |  2   
   A   |  1

1 Ответ

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

Вы можете установить значение наименьшее :

update t
    set t.type = t2.min_type
    from (select t2.item, min(type) as min_type
          from t t2
          group by t2.item
         ) t2;

Если у вас есть столбец, в котором указан порядок, вы можете сформулировать это следующим образом:

update t
    set t.type = t2.type
    from (select distinct on (t2.item) t2.item, t2.type
          from t t2
          order by t2.item, t2.?
         ) t2;

Таблицы SQL представляют неупорядоченные наборы.Не существует «первой» строки, если столбец специально не содержит эту информацию.

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