Есть ли способы объединить две строки таблицы в одну строку, используя Django ORM? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть таблица, в которой есть столбцы с именами measured_time, data_type и value.
. В data_type есть два типа: temperature и humidity.Я хочу объединить две строки данных, если они имеют одинаковые measured_time с использованием Django ORM.
Я использую Maria DB.

С использованием Raw SQL, следующий запрос выполняет то, что я хочу.

SELECT  T1.measured_time, T1.temperature, T2.humidity
FROM ( SELECT CASE WHEN data_type = 1 then value END as temperature,
CASE WHEN data_type = 2 then value END  as humidity ,
measured_time FROM data_table) as T1,
( SELECT CASE WHEN data_type = 1 then value END as temperature ,
CASE WHEN data_type = 2 then value END  as humidity , 
measured_time FROM data_table) as T2 
WHERE T1.measured_time = T2.measured_time and 
T1.temperature IS NOT null and T2.humidity IS NOT null and 
DATE(T1.measured_time) = '2019-07-01' 

Исходная таблица

| measured_time       | data_type | value |
|---------------------|-----------|-------|
| 2019-07-01-17:27:03 | 1         | 25.24 |
| 2019-07-01-17:27:03 | 2         | 33.22 |

Ожидаемый результат

| measured_time       | temperaure | humidity |
|---------------------|------------|----------|
| 2019-07-01-17:27:03 | 25.24      | 33.22    |

1 Ответ

0 голосов
/ 02 июля 2019

Я никогда не использовал его и поэтому не могу ответить подробно, но вы можете передать необработанный SQL-запрос в Django и получить результаты обратно через ORM. Поскольку у вас уже есть SQL, это может быть самый простой способ продолжить. Документация здесь

...