Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 评估长生不老药中的参数(含体外)_Elixir_Ecto - Fatal编程技术网

Elixir 评估长生不老药中的参数(含体外)

Elixir 评估长生不老药中的参数(含体外),elixir,ecto,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) |&g

查看下面的
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\u by
是一个原子。例如,如果
groupby=:platform
,那么在
select
字段中,我需要获得
select([c],{c.platform,count(c)})

实现这一点的最佳方法是什么?

您可以将选择位更改为

...
|> select(fragment("count(*), ?", ^group_by))

通过这种方式,您可以轻松地使用函数的输入。

您也可以使用
字段/2
,如
选择([c],{field(c,^groupby),count(1)})
(不确定是否需要将
groupby
固定在此处,但我认为可以)