0
에 대한 스키마를 선언체외 내가이 쿼리를 실행하기 위해 노력하고있어 쿼리
select last_sd.*
from
(select distinct(sensor_id) from sensor_data) s LEFT JOIN LATERAL
(select * from sensor_data sd1 where sd1.sensor_id = s.sensor_id order by sd1.received_at desc limit 1) last_sd ON true
내가 가진 가장 가까운 것은 :
from s in IotInABox.SensorData, distinct: true, select: s.sensor_id
|> join(:left_lateral, [s], sd in fragment("select * from sensor_data sd1 where sd1.sensor_id = ? order by sd1.received_at desc limit 1", s.sensor_id))
|> select([s, sd], sd)
이
PostgreSQL requires a schema module when using selector "f1" but none was given. Please specify a schema or specify exactly which fields from "f1" you desire in query
을 발생하기 때문에이 있지만, 부분적으로 작동
의미가 없기 때문에 from s in SensorData
이 없으므로 어느 외골격 모델을 사용해야하는지 알 수 없습니다.
거기에 어떤 스키마를 쿼리 결과로 사용할지 ecto에게 알리는 방법이 있습니까?
다시지도를지도하지만 난 그냥 선언하고 싶습니다 이제는 스키마에 다시 참여할 수는 있지만 성능에 영향을 미친다. – alex88
스키마를 선언하기 위해'SensorData에있는 from '보다 다른 방법이 있는지 의심 스럽다 – amatalai
@ alex88 어쩌면 Ecto.Adapters.SQL.query를 시도해야한다. 원시 SQL을 사용하고 % Postgrex.Result {}를 원하는 것으로 변환하십시오. – amatalai