Лексикографическая сортировка столбца таблицы Postgres на основе значений другого столбца - PullRequest
0 голосов
/ 03 июня 2018

У меня есть таблица, скажем initial_freq, в базе данных PostgreSQL (версия 10.4):

 initial | freq 
---------+------
 r       |   20
 s       |   20
 a       |   10
 m       |   10
 p       |    7
 k       |    6
 d       |    5
 n       |    3
 g       |    3
 c       |    3
 v       |    3
 b       |    3
 h       |    2
 y       |    2
 j       |    2
 i       |    1

Требуется, чтобы при наличии связи вВ столбце freq соответствующие значения в столбце initial должны быть отсортированы в алфавитном порядке.

Требуемый вывод выглядит следующим образом:

 initial | freq 
---------+------
 r       |   20
 s       |   20
 a       |   10
 m       |   10
 p       |    7
 k       |    6
 d       |    5
 b       |    3
 c       |    3
 g       |    3
 n       |    3
 v       |    3
 h       |    2
 j       |    2
 y       |    2
 i       |    1

Эточасть большой проблемы, большую часть которой я решил, кроме этой.

Я понимаю, что это может быть проблема динамического программирования, и я могу решить ее на других языках программирования.

IЯ новичок в мире SQL.Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 03 июня 2018

Используйте ORDER BY для заказа по freq DESC, а затем по initial.

SELECT
  *
FROM
  your_table
ORDER BY
  freq DESC, initial;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...