Таблица в PostgreSQL 10 создается с:
CREATE TABLE public."Table"(
"ID" serial,
"Epoch" smallint,
"Unit" smallint,
"Value" double precision
);
и в нем хранятся показания двух единиц измерения.
Как правило, обе единицы измерения должны измерять и давать показания параллельно, поэтому в одно и то же время (называемое здесь: эпоха) должны быть вставлены две строки.
Однако бывают моменты, когда не все ожидаемые два показания предоставляются для одной эпохи, как это показано в примере ниже (эпоха = 30 и эпоха = 40):
Epoch | Unit | Value
-------+------+-------
10 | 1 | 1.1
10 | 2 | 1.2
20 | 1 | 2.1
20 | 2 | 2.2
30 | 1 | 3.1
40 | 2 | 4.2
50 | 1 | 5.1
50 | 2 | 5.2
(8 rows)
У меня проблема со сборкой запросов, которая выполняет следующие действия:
- Проверьте, присутствуют ли строки для Unit = 1 и Unit = 2 для одной и той же эпохи
Вернуть результат для каждой эпохи для обеих единиц измерения в одной строке, как здесь:
Epoch ; Value_Unit1 ; Value_Unit2
Строки без указаний, поступающие из обоих подразделений, должны быть исключены из результатов.
Я ищу решение, дающее (для приведенного примера) точный результат следующим образом:
10 ; 1.1 ; 1.2
20 ; 2.1 ; 2.2
50 ; 5.1 ; 5.2
Многие примеры здесь имеют дело с очень похожими проблемами, но они не позволяют мне найти правильный ответ для моей конкретной проблемы или ... я не могу понять подсказки, предложенные там.
Заранее спасибо.