Generic composable Ecto-Abfrage mit dynamischem Feldnamen im Abfrageausdruck
Ich versuche zuzulassen, dass ein Feldname übergeben und in einem Ecto-Abfrageausdruck dynamisch ausgeführt wird, wie folgt:
def count_distinct(query, field_name) when is_binary(field_name) do
query
|> select([x], count(Map.fetch!(x, field_name), :distinct))
end
Ich erhalte jedoch diesen Kompilierungsfehler:
(Ecto.Query.CompileError) `Map.fetch!(x, field_name)` is not a valid query expression
Gibt es eine Möglichkeit, dies zu erreichen?