2016-07-05 2 views
1

Сценария: У меня есть таблица, имеющее значение, сохраненное в формате Json на его один из column.I'm ожидая результат, чтобы получить отчетливые или уникальных записи на основе значения (одно из значений столбца json ), сохраненного в формате json.Postgresql - получить уникальные отчеты на основе Json значения

My table have 3 columns : 
1. Id (integer) 
ex. value - 20 
2. Description (text) 
ex.value - {"first_name":"John","last_name":"Doe","company_id":"26"} 
3. Created (integer) 

Теперь я хочу, чтобы отчетливые записи на основе company_id значение и есть ли функция доступна в PostgreSQL для таких требований?

Техническая информация:

Postgresql версия - 9,5

+0

Вы можете использовать [DISTINCT ON] (https://www.postgresql.org/docs/current/static/sql-select.html#SQL-DISTINCT) 'select different on (ex.value - >> 'company_id')' (или 'select distinct on (ex.value -> 'company_id')', если у вас есть 'jsonb'), но значения в других столбцах не гарантируются (если вы не добавите дополнительные выражения 'order by'. – pozs

ответ

1

Postgres 9.5 (а также несколько более ранних версий) имеет некоторые встроенные в поддержку запроса JSON текста. Попробуйте следующий запрос:

SELECT * 
FROM yourTable 
WHERE Description->>'company_id' = 'some_value' 

Documentation

Смежные вопросы