У меня есть таблица объектов, у которой есть значения, связанные с ней. Значение зависит от того, какая модель используется для ее расчета.Сравнение значений между строками
Для модели это соотношение я создал таблицу соединений со следующей схемой:
CREATE TABLE object_value
(
object_id integer NOT NULL,
model character varying(20) NOT NULL,
value integer,
CONSTRAINT object_value_pkey PRIMARY KEY (object_id, model),
CONSTRAINT object_value_object_id_fkey FOREIGN KEY (leg_id)
REFERENCES object (id) MATCH SIMPLE
)
Некоторые примеры данных:
object_id; model; value
116288;"model_2.2.3";7028
116288;"model_2.2.4";7028
116289;"model_2.2.3";5535
116289;"model_2.2.4";5530
116290;"model_2.2.3";3529
116290;"model_2.2.4";3530
Я запрашивая эту таблицу, чтобы искать различия в модельных расчетах, как следуйте за:
SELECT DISTINCT ON (object_id) *
FROM object_value AS a INNER JOIN object_value AS b USING(object_id)
WHERE a.value!=b.value;
Это работает отлично, так как у меня есть только два разные модели, но при добавлении данных из третьей версии модели запрос не будет работать должным образом. И, присоединяясь к таблице снова, я останусь с той же проблемой при добавлении четвертой модели.
Есть ли другая концепция сравнения значений между строками, о которых я не думаю?
_when добавления данных из третьей версии модели запрос не будет работать, как intended_, нужно больше разъяснений по этому поводу? –
Откуда берется 'leg_alertness'? –
Это была ошибка копирования/вставки, она должна быть object_value. – monostop