How to select virtual field from a CTE

I’ve tried selecting current_value in in the second query with current_value: r.current_value:

query = { "current_values", Reading }
  |> with_cte("current_values", as: ^current_values_query)
  |> select_merge([r], %{
    current_value: r.current_value,
    previous_value:
      lag(r.value)
      |> over(order_by: r.read_at),

  })
  |> order_by([r], [asc: r.read_at])

But that results in an Ecto.QueryError:

field `current_electricity` in `select` is a virtual field in schema Reading in query

Maybe there is another syntax for selecting current_value I am not aware of?