programing

Django ORM을 사용하여 두 줄의 테이블을 한 줄로 조합할 수 있는 방법이 있습니까?

newsource 2022. 9. 16. 21:05

Django ORM을 사용하여 두 줄의 테이블을 한 줄로 조합할 수 있는 방법이 있습니까?

테이블에는 다음과 같은 컬럼이 있습니다.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    |

사용한 적이 없기 때문에 자세한 답변은 할 수 없지만 원시 SQL 쿼리를 Django에 입력하고 ORM을 통해 결과를 얻을 수 있습니다.SQL을 이미 가지고 있기 때문에 이것이 가장 쉬운 진행 방법일 수 있습니다.매뉴얼은 이쪽

언급URL : https://stackoverflow.com/questions/56848337/is-there-any-ways-to-combine-two-rows-of-table-into-one-row-using-django-orm