【发布时间】:2017-01-24 13:08:37
【问题描述】:
我有这个 Ecto 查询:
def sum(query) do
from aggregate in query,
select: %{
ones: fragment("coalesce(sum(ones), 0)"),
twos: fragment("coalesce(sum(twos), 0)"),
threes: fragment("coalesce(sum(threes), 0)"),
fours: fragment("coalesce(sum(fours), 0)"),
fives: fragment("coalesce(sum(fives), 0)"),
unanswered: fragment("coalesce(sum(unanswered), 0)"),
n_size: fragment("coalesce(sum(n_size), 0)"),
comment_count: fragment("coalesce(sum(comment_count), 0)")
}
end
我担心这里每一行的fragment、coalesce 和sum 重复。有没有办法可以将它移到它自己的函数中并像这样调用它?
def sum(query) do
from aggregate in query,
select: %{
ones: sum.("ones"),
twos: sum.("twos"),
...
【问题讨论】: