Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val sensorDatas = TableQuery[SensorDataTable]
- val sensorRoomLinks = TableQuery[SensorRoomLinks]
- private def sensorsForRoomsForRange(roomLinks: Seq[SensorRoomLink], from: ZonedDateTime, to: ZonedDateTime): Query[(tables.SensorRoomLinks, tables.SensorDataTable), (SensorRoomLink, UtilizationData), Seq] = {
- import IdTable._
- val joined = sensorDatas join sensorRoomLinks on (_.sensorId === _.sensorUid)
- val filtered = joined.filter { case (data, link) => (link.roomId inSet roomLinks) && (data.sensorUid inSet sensorIds) && /* other conditions here */ }
- val grouped = filtered.groupBy { case (data, link) => link.roomId }
- val aggregated = grouped.map { case (roomId, rows) => roomId -> rows.map{ case (data, link) => data.value }.max }
- aggregated
- }
Add Comment
Please, Sign In to add comment