首页 > 解决方案 > Elixir 中的评估参数(使用 Ecto)

问题描述

看看select()下面的行:

def query_group(user, group_by, filters \\[]) do
    from(Click)
    |> select([c], {c.^group_by, count(c)})
    |> where([c], c.link_user_id == ^user.id)
    |> where([c], ^filters)
    |> group_by([c], ^group_by)
    |> Repo.all
    |> Enum.map(&(Tuple.to_list &1))
  end

group_by是一个原子。例如,如果group_by = :platform,那么在select现场,我需要得到select([c], {c.platform, count(c)})

解决这个问题的最佳方法是什么?

标签: elixirecto

解决方案


您也可以使用field/2, select([c], {field(c, ^group_by), count(1)}) (不确定是否group_by需要固定在此处,但我认为是这样)


推荐阅读