2015-07-21 4 views
0

Привет, я работаю с базой данных postgresql. Мне нужно рассчитать среднее время между записями, которое я получаю из одной таблицы.Получение записей из одной таблицы с различными условиями

Схема:

create_table "user" do |t| 
t.text  "status" 
t.datetime "time" 
t.datetime "updated_at" 

конец

Пример:

  1. выбрать время от пользователей, где состояние = 'теперь';
  2. выберите время от пользователя, где status = 'after';

по результатам вышеуказанных запросов мне нужно выполнить среднее время. Возможно, мне нужно объединить эти два запроса в один запрос. Я попытался с помощью оператора union, правильно ли это использовать? Поэтому любая помощь приветствуется.

+0

Просьба указать либо вашу схему, либо любой запрос, который вы уже предприняли. –

+0

Я опубликовал схему –

ответ

0

Вы должны рассмотреть возможность использования функции SQL SELECT AVG() для каждой группы. например,

select status, avg(time) from users where status = 'now' or status = 'after' group by status 
+0

Мне нужно рассчитать среднее значение между записями на основе состояния состояния = 'now' и status = 'after' –

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