Guest User

Untitled

a guest
May 21st, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. val sensorDatas = TableQuery[SensorDataTable]
  2. val sensorRoomLinks = TableQuery[SensorRoomLinks]
  3. private def sensorsForRoomsForRange(roomLinks: Seq[SensorRoomLink], from: ZonedDateTime, to: ZonedDateTime): Query[(tables.SensorRoomLinks, tables.SensorDataTable), (SensorRoomLink, UtilizationData), Seq] = {
  4. import IdTable._
  5. val joined = sensorDatas join sensorRoomLinks on (_.sensorId === _.sensorUid)
  6. val filtered = joined.filter { case (data, link) => (link.roomId inSet roomLinks) && (data.sensorUid inSet sensorIds) && /* other conditions here */ }
  7. val grouped = filtered.groupBy { case (data, link) => link.roomId }
  8. val aggregated = grouped.map { case (roomId, rows) => roomId -> rows.map{ case (data, link) => data.value }.max }
  9.  
  10. aggregated
  11. }
Add Comment
Please, Sign In to add comment