Общий составной Ecto-запрос с динамическим именем поля в выражении запроса
Я пытаюсь разрешить передачу имени поля и динамическое выполнение его в выражении запроса Ecto, например:
def count_distinct(query, field_name) when is_binary(field_name) do
query
|> select([x], count(Map.fetch!(x, field_name), :distinct))
end
Тем не менее, я получаю эту ошибку компиляции:
(Ecto.Query.CompileError) `Map.fetch!(x, field_name)` is not a valid query expression
Есть ли способ сделать это?