Получить уникальный набор значений нескольких столбцов из таблицы в postgres - PullRequest
2 голосов
/ 14 марта 2019

У меня есть таблица базы данных с записями в формате ниже => col1 (строка) | col2 (строка) | col3 (двойной)

col1 и col2 содержат узлы с расстоянием между ними. Теперь я хочу получить все uniq узлы, отсортированные по расстоянию, которое хранится в col3.

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

select col1, col2 from tablex order by col3 desc

Если эта база данных не идеальный способ хранения и запроса, предложите лучший вариант.

enter image description here

 expected output => 

 take pairs on the order of correlation value from
 highest to lowest =>  
  (d1, d3) -> 0.32 
  (d3, d4) -> 0.22 
  (d2, d3) -> 0.21 
  (d1, d2) -> 0.16 
  (d1, d4) -> 0.13 
  (d2, d4) -> 0.11

 -> finally merge them and return uniq ones. d1, d3, d3, d4, d2, d3, d1, d2, d1, d4, d2, d4

 -> final result :  d1, d3, d4, d2 (here i am taking the first occured one and ignoring the next)
...