Как добавить столбец, который имеет возрастающее целочисленное значение, но увеличивается только при изменении значения в другом столбце - PullRequest
0 голосов
/ 05 июля 2018

Допустим, у меня есть следующий кошелек

walletid
ab2
ab2
cd3

Теперь я хочу добавить идентификатор, чтобы изменить его на:

id     walletid
1      ab2
1      ab2
2      cd3

1 Ответ

0 голосов
/ 05 июля 2018

Вот, пожалуйста,

SELECT wallets.walletid, wallets_distinct_ids.id
FROM wallets INNER JOIN
(SELECT walletid, row_number() OVER () as id
 FROM 
 (SELECT DISTINCT walletid
  FROM wallets) AS wallets_distinct) AS wallets_distinct_ids
ON wallets.walletid =  wallets_distinct_ids.walletid

Пояснение:

  1. Сначала мы создаем запрос, который выбирает различные значения walletid
  2. Мы принимаем запрос от pt. 1 и использовать его как источник в предложении FROM. Теперь вы можете добавить функцию окна для подсчета строк. Этот запрос назначает отдельный идентификатор для каждого отдельного walletid значения
  3. Теперь мы можем использовать запрос из pt.2 в качестве источника в предложении FROM, соединяя его с вашей основной таблицей, чтобы назначить отдельный идентификатор для каждого walletid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...