【发布时间】:2016-09-12 20:48:12
【问题描述】:
我正在尝试运行此查询:
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模型,
有没有办法告诉 ecto 使用哪个模式作为查询结果?
【问题讨论】: