Database 查询分组

Database 查询分组,database,postgresql,elixir,ecto,Database,Postgresql,Elixir,Ecto,您是否看到了按位置\u schedule.id对这些结果进行分组的机会 from( ta in TerminalApplication, where: [device_id: ^terminal_id], join: d in assoc(ta, :device), join: ou in assoc(d, :organization_unit), left_join: ls in LocationSchedule, on: ou.id == ls.organizatio

您是否看到了按
位置\u schedule.id
对这些结果进行分组的机会

from(
  ta in TerminalApplication,
  where: [device_id: ^terminal_id],
  join: d in assoc(ta, :device),
  join: ou in assoc(d, :organization_unit),
  left_join: ls in LocationSchedule,
  on: ou.id == ls.organization_unit_id,
  select: %{terminal_application: ta, location_schedule: ls}
)
或:

这些查询返回相同的结果,我需要获取LocationSchedule及其TerminalApplication

协会成员如下:

TerminalApplication (device_id)
BELONGS TO
Device (organization_unit_id)
BELONGS TO
Organization
HAS ONE
LocationSchedule (organization_unit_id)

SQL查询将返回一个普通行集。如果要在DB内分组,则需要TerminalApplication的聚合函数。OTOH,您可能会得到这样的结果,然后在应用程序端按LocationSchedule分组;如果没有聚合函数,它不可能在数据库中完成,它无法返回OLAP多维数据集。SQL查询将返回普通行集。如果要在DB内分组,则需要TerminalApplication的聚合函数。OTOH,您可能会得到这样的结果,然后在应用程序端按LocationSchedule分组;如果没有聚合函数,它不可能在数据库中完成,它根本无法返回OLAP多维数据集。
TerminalApplication (device_id)
BELONGS TO
Device (organization_unit_id)
BELONGS TO
Organization
HAS ONE
LocationSchedule (organization_unit_id)