有什么方法可以使用Django ORM将两行表格合并为一行?

时间:2019-07-02 08:29:46

标签: python django orm mariadb django-orm

我有一个表,该表包含名为measured_timedata_typevalue的列。
data_type中,有两种类型,temperaturehumidity。 我想使用measured_time合并两行数据,如果它们具有相同的Django ORM
我正在使用Maria DB

使用原始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 :(得分:0)

我从未使用过它,因此无法详细回答,但是您可以将原始SQL查询输入Django,并通过ORM返回结果。由于您已经掌握了SQL,因此这可能是最简单的方法。 Documentation here