gkk*_*sch 1 elixir ecto phoenix-framework
我正在做一个ecto查询,我正在尝试分组q.created_date.此查询成功执行GROUP BY,但它在第二次执行.我试图按月分组.
MYQUERY |> group_by([q], [q.created_date, q.id])
Run Code Online (Sandbox Code Playgroud)
是否有类似的东西:
MYQUERY |> group_by([q], [month(q.created_date), q.id])
Run Code Online (Sandbox Code Playgroud)
您可以使用fragmentwith date_part('month', field)在PostgreSQL中提取月份:fragment("date_part('month', ?)", p.inserted_at))
iex(1)> from(Post) |> select([p], p.inserted_at) |> Repo.all
[debug] QUERY OK db=1.1ms queue=0.1ms
SELECT p0."inserted_at" FROM "posts" AS p0 []
[#Ecto.DateTime<2000-01-01 00:00:00>, #Ecto.DateTime<2000-02-02 00:00:00>,
#Ecto.DateTime<2000-03-03 00:00:00>, #Ecto.DateTime<2000-04-04 00:00:00>,
#Ecto.DateTime<2000-04-02 00:00:00>, #Ecto.DateTime<2000-03-02 00:00:00>,
#Ecto.DateTime<2000-02-02 00:00:00>, #Ecto.DateTime<2000-01-02 00:00:00>]
iex(2)> from(Post) |> group_by([p], fragment("date_part('month', ?)", p.inserted_at)) |> select([p], count("*")) |> Repo.all
[debug] QUERY OK db=1.7ms
SELECT count('*') FROM "posts" AS p0 GROUP BY date_part('month', p0."inserted_at") []
[2, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |