Есть ли способ в postgresql, где я могу перевернуть самое большое целое число (или номер версии) и заменить его самым низким? Переверните его, а затем создайте новый столбец, в котором будет показан обратный порядок. В качестве примечания, наибольшее целое число может отличаться, например, оно может быть 4 (как в примере ниже) или 40. В то же время, оставляя версию # такой же, если есть кратные числа. Например, если есть два 40, они версии будут одинаковыми с новым номером, а не частью подсчета. В качестве примера:
software| version #
( 18.0 | 4 )
( 18.0 | 4 )
( 17.0 | 3 )
( 17.0 | 3 )
( 16.0 | 2 )
( 16.0 | 2 )
( 16.0 | 2 )
( 15.0 | 1 )
И измените его на:
software | New vers #
( 18.0 | 1 )
( 18.0 | 1 )
( 17.0 | 2 )
( 17.0 | 2 )
( 16.0 | 3 )
( 16.0 | 3 )
( 16.0 | 3 )
( 15.0 | 4 )
Вот моя неудачная попытка:
select
tx.cid,
count(camaversion)
FROM
(select
software,
version
from
software_info
GROUP BY
software_info.software,
version
Order by version desc )tx
Group by tx.software, tx.version
Все еще пытаюсь понять все возможности postgresql и код преследует мой мозг и, похоже, не может понять. Я просто знаю, что есть способ. Попытка поместить это на карту, чтобы был более легкий способ раскрасить это. Любой код или предложения помогут.